电商分销,海南百度推广seo,电子商务网站建设评估的工具,婚恋网站制作要多少钱类的构造函数#xff1a; 类的构造函数是类的一种特殊的成员函数#xff0c;它会在每次创建类的新对象时执行。 构造函数的名称与类的名称是完全相同的#xff0c;并且不会返回任何类型#xff0c;也不会返回void。 构造函数可用于为某些成员变量初始值。 默认的构造函数是… 类的构造函数 类的构造函数是类的一种特殊的成员函数它会在每次创建类的新对象时执行。 构造函数的名称与类的名称是完全相同的并且不会返回任何类型也不会返回void。 构造函数可用于为某些成员变量初始值。 默认的构造函数是没有任何参数的但是如果需要构造函数也是可以带参数的。这样在创建对象时就可以给对象赋初值了。 /***
construct.cpp
***/
#includeiostream
#includestring
using namespace std;class Student
{public:Student(string,string,char,int); //构造函数~Student(); //析构函数string name;string number;char X;int year;void print(void);
};Student::Student(string N,string n,char x,int y)
{name N;number n;X x;year y;
}Student::~Student()
{}
void Student::print()
{cout name endl;cout number endl;cout X endl;cout year endl;
}int main()
{cout please input name : ; string N;cin N;cout please input StudentID :;string ID;cin ID;cout please input gender (M or W): ;char x;cin x;cout please input age : ;int y;cin y;Student S(N,ID,x,y);S.print();return 0;
} 初始化成员列表的顺序时按照声明的顺序初始化的而不是按照初始化列表的顺序进行初始化。 初始化顺序最好要按照变量在类声明的顺序一致如果初始化变量之存在依赖关系则初始化会顺序与变量声明顺序存在差异时则会存在有些变量无法初始化成功。若初始化变量之间没有值的依赖时初始化顺序与变量声明顺序不同则没有关系。 类的析构函数 类的析构函数是类的一种特殊的成员函数它会在每次删除所创建的对象时执行。 析构函数的名称与类的名称是完全相同的只是在前面加一个波浪号(~) 它不会返回任何值他不能带有任何参数。析构函数有助于在跳出程序比如关闭文件释放内存前释放资源。 /****
initiate.cpp
***/#includeiostream
using namespace std;class Student1
{public:int a 0;int b 0;void fprint(){cout a a b b endl;}Student1(){cout have no parameter Student1 endl;}// Student1(int i):b(i),a(b){}; 错误初始化顺序Student1(int i):a(i),b(a){cout have parameter Student1 endl;}Student1(const Student1 t1){cout Copy construct func Student1 endl;this-a t1.a;this-b t1.b;}Student1 operator (const Student1 t1){cout evalute func Student1 endl;this-a t1.a;this-b t1.b;return *this;}
};
class Student2
{public:Student1 test;Student2(Student1 t1){t1.fprint();cout E: endl;test t1;}//Student2(Student1 t1):test(t1);
};int main()
{cout A: ;Student1 A;A.fprint();cout B: ; Student1 B(2);B.fprint(); cout C; ;Student1 C(B);C.fprint();cout D: endl;Student2 D(C);D.test.fprint();return 0;
} 运行结果 exbotubuntu:~/wangqinghe/C/func$ ./initiate A: have no parameter Student1 a 0 b 0 B: have parameter Student1 a 2 b 2 C; Copy construct func Student1 a 2 b 2 D: have no parameter Student1 a 2 b 2 E: evalute func Student1 a 2 b 2 转载于:https://www.cnblogs.com/wanghao-boke/p/11310826.html