C++(笔记)类、构造器基础
来源:互联网 发布:php base64解码成图片 编辑:程序博客网 时间:2024/06/05 07:25
一、创类
1.类的特征
1.类:决定一个对象将是什么样的(具备什么属性和功能)
2.类包含什么: 属性(特征,成员变量)和方法(功能操作,成员函数)
2.类的成员访问
1.类内访问:通过成员函数(不限)
2.类外访问:对象、对象指针(公有)
3.类的类型
1.公有类型(一般是方法):public关键字声明,该类型成员定义了类的外部接口,在类外只能访问该类的公有成员
2.私有类型(一般是属性):private关键字声明,只能被本类成员函数访问,来自类外部任何访问非法
3.保护类型:暂时先不解
4.类的基本结构
class 类名称
{
public:(必须要有)
成员函数
private:
成员变量
};
///
///
成员函数的实现
void(函数返回类型) 类名称::成员函数名(参数)
{
实现内容
}
///
///
主函数使用类
1.先定义类的变量:类名称+自己定义变量名
2.利用自己定义的类的变量调用成员函数:自己定义变量名.成员函数
5.创类实例
#include <iostream>using namespace std;class Clock{ public://外部接口,公有成员函数 void setTime(int h=0,int m=0,int s=0); void getTime(); private://私有成员 int hour,minute,second;};void Clock::setTime(int h,int m,int s){ hour=h; minute=m; second=s;}void Clock::getTime(){ cout<<hour<<":"<<minute<<":"<<second<<endl;}int main(){ Clock myClock; cout<<"first time"<<endl; myClock.setTime();//设置时间为默认值 myClock.getTime();//显示时间 cout<<"second time"<<endl; myClock.setTime(8,30,30); myClock.getTime(); return 0;}///000///8,30,30
二、构造器
(初始化工作,在定义中,对成员变量赋初值)
1. 构造器注意点
1.构造器的名字必须和它所在的类的名称完全相同
2.系统在创建某个类的实例时,会第一时间自动调用这个类的构造器
3.构造器永远不会返回任何值
4.若没有自己添加构造器,编译器会自动添加最简单的构造器
2.构造器创建
///构造器中无参
class A
{
public:
A();
…
};
A::A()
{
成员变量=值;
…
}
…
int main()
{
A myA;
myA.输出作用的成员函数
…
}
///
构造器中有参
class A
{
public:
A(int p=8){//这里是类内定义了
成员变量=p;
}
…
};
int main()
{
…
}
3.构造器无参和有参实例
//无参构造器#include <iostream>using namespace std;class A{ public: A();//无参构造器 void setA(int newA); void getA(); private: int q;};A::A(){ q=3;}void A::setA(int newA){ q=newA;}void A::getA(){ cout<<q<<endl;}int main(){ A a; a.getA(); a.setA(1); a.getA(); return 0;}//有参构造器#include <iostream>using namespace std;class A{ public: A(int p=7){//含参构造器,函数可以类内定义也可以类外定义 q=p; } void setA(int newA); void getA(); private: int q;};void A::setA(int newA){ q=newA;}void A::getA(){ cout<<q<<endl;}int main(){ A a; a.getA(); a.setA(1); a.getA(); return 0;}
三、复制构造器
1.作用
我个人总结复制构造器作用就是使用一个你已经定义好的对象(已经存在),去初始化另一个同类的一个新对象
2.实例说明复制构造器
#include <iostream>using namespace std;class Person{ public: void setAge(int newAge); void getAge(); void getName(); Person(int a,char n){ age=a; name=n; } Person(Person &p); //赋值构造器 int geta(){return age;}//利用连个get函数来提取值 char getn(){return name;} private: int age; char name; };Person::Person(Person &p)//复制构造器的定义 { age=p.age; name=p.name; cout<<"copy"<<endl;}void Person::setAge(int newAge){ age=newAge;}void Person::getAge(){ cout<<age<<endl;}void Person::getName(){ cout<<name<<endl;}int main(){ Person p(14,'s');//这里就是使用已经存在的对象初始化同类的新对象 Person b(p); cout<<b.geta()<<endl; cout<<b.getn()<<endl; return 0;}
- C++(笔记)类、构造器基础
- java 从零开始,学习笔记之基础入门<类_方法_构造器>(三)
- C++(笔记)子类构造器初始化&执行顺序问题
- 构造器(C#)
- C#实例构造器,类型构造器 -笔记
- .NET基础笔记(C#)
- C语言基础(笔记)
- IOS前奏之Object-C基础:类的构造函数和description(自描函数)
- Jni基础(二) C语言访问Java构造方法,父类方法
- (四)JNI学习之C语言基础,构造类型
- C++&C学习笔记(一)(基础)
- C++基础学习笔记----第九课(构造函数)
- Java基础复习---对象构造(构造器)
- Objective-C基础学习笔记(六)-property与构造方法
- C++(笔记)解释继承机制中构造器与析构器
- 1、jQuery基础(jQuery构造器)
- [Java基础] 构造器
- java基础,构造器
- WEB后端学习(二)——系统常量和一些运算符
- 玩转数组之有序数组共有元素
- 已知ip地址和其子网掩码如何求网络号子网号主机号
- Andriod自定义View一:TextView可设置宽高
- 技术点详解---IPSec VPN基本原理
- C++(笔记)类、构造器基础
- asdfffffffffffffffffffffffffffffff
- python 手动同步mysql表结构脚本
- 49. Group Anagrams
- 在es6中,对rest参数和扩展运算符的理解(待更新)
- GFOJ64水一水
- 技术点详解---L2TP VPN
- 学习Processing~
- Record