我刚学的知识:c++的构造函数。
在在此之前一直都处于迷惑之中,现在怕忘。所以赶紧把他写下来,用来以后复习,可能有错误的地方,请大牛们指出来。
c++知识相对与c来说更加抽象,但真明白了,也就那一回事。这话是学长说的,而我刚把构造函数学会,还在晕着别的地方。
c++的构造函数分为3种:
//一。不带参的构造函数
class car
{
public:
?car()
?{
??cout << "123" << endl;
?}
?~car()
?{
??cout << "123" << endl;
?}
};
int main()
{
?car a;
?return 0;
}//结果会输出俩个123
//二。带参的构造函数
class car
{
int a;//在c++中如果没有表明数据类型,系统默认为private型
int b;
public:
car(int a,int b)//定义了一个代参的构造函数
{
cout << a << b << endl;
}
~car()
{
cout << "123" << endl;
}
};
int main()
{
car a(1,2);
return 0;
}//结果会输出俩个123
三。委托构造函数
class clock
{
public:
clock(int a, int b, int c);
void timegive(int newH, int newM, int newG);
void timeshow();
clock() :clock(0, 0, 0){}//c++中为避免构造函数的多次出现,而且方便修改构造函数的值,故用委托构造函数
private:
int hour, minute, second;
};
clock::clock(int a, int b, int c) //为类的对象进行初始化//一
{
hour = a;
minute = b;
second = c;
}
void clock::timegive(int newH, int newM, int newG)
{
hour = newH;
minute = newM;
second = newG;
}
void clock::timeshow()
{
cout << hour << ":" << minute << ":" << second;
}
int main()
{
clock c1(0, 0, 0);
clock c2;
c1.timeshow();
c2.timeshow();
}
四。复制构造函数
//构造函数的复制函数
class car
{
public:
car(); //构造函数
car(const car &s); // & 引用符 s 复制构造函数开始时先定义一个供引用的对象,将对象car中的数据成员值复制过来
~car(); //析构函数
void print();
private:
int x;
int y;//数据成员ptr指向分配的字符串
};
car::car()
{
int x = 10;
int y = 12;
}
car::car(const car &s)
{
x = s.x;
y = s.y;
cout << "已完成拷贝" << endl;
}
void car::print()
{
cout << x << ":"<<y<<endl;
}
int main()
{
car lol;
car qwe(lol);
return 0;
}
//const修饰的数据类型是指常类型,常类型的变量或对象的值是不能被更新的。在学引用时我们会发现引用是二者都会改变
刚刚学习请多指教