首页 > 代码库 > c++的构造函数

c++的构造函数


我刚学的知识: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修饰的数据类型是指常类型,常类型的变量或对象的值是不能被更新的。在学引用时我们会发现引用是二者都会改变

刚刚学习请多指教

c++的构造函数