重载的cat类构造函数_C++ 类的使用(一)

c++类的基本定义及注意事项

ffa6f42fdf50405411fda707854e7699.png

01

类和对象

C++一切事物皆可视为对象。

对象具有属性、行为两大特征。

面向对象具有封装、继承、多态三大特性。

02

类的封装

封装:把对象的属性和行为封装为一个整体,对其添加权限的控制。

class MyClass{public: //公共权限  void SetProperty(string str)//行为   {    TestProperty = str;  }    string GetProperty()//行为   {    return TestProperty;  }private://私有权限  string TestProperty;//属性 };

03

构造函数和析构函数

类在初始化的时候会调用构造函数,在释放时会自动调用析构函数。

在封装一个类的时候如果没有定义构造函数和析构函数,编译器会自动生成默认空实现的构造函数和析构函数。

class MyClass{public:   void SetProperty(string str){    TestProperty = str;  }  string GetProperty(){    return TestProperty;  }  //构造函数名称和类名一致(可以有参数,并且可以重载)  MyClass()  {    cout << "调用构造函数" << endl;  }  //析构函数在类名添加“~”并且没有参数,不可以重载  ~MyClass()  {    cout << "调用析构函数" << endl;  }private:  string TestProperty;};

04

构造函数的重载及调用

构造函数可以接收参数,并且可以重载

class MyClass{public:  void SetProperty(string str){    TestProperty = str;  }  string GetProperty(){    return TestProperty;  }  //构造函数名称和类名一致(可以有参数,并且可以重载)  MyClass()  {    cout << "调用构造函数()" << endl;  }  //具有参数的构造函数  MyClass(string str)  {    TestProperty = str;    cout << "调用构造函数(string)" << endl;  }  //拷贝构造函数  MyClass(const MyClass &data)  {    TestProperty = data.TestProperty;    cout << "调用拷贝构造函数" << endl;  }  //析构函数在类名添加“~”并且没有参数,不可以重载  ~MyClass()  {    cout << "调用析构函数" << endl;  }private:  string TestProperty;};void NewClassTest(){  //局部变量,定义在栈上,方法执行结束后自动释放  MyClass cls;  MyClass cls2("PPP");  MyClass cls3(cls2);}int main(){  NewClassTest();  system("pause");}

输出结果:

18afdd50ea48630468747f660e0a5483.png

04

类和结构体的区别

类和结构体唯一的区别就是权限的默认值不同。

类默认访问权限:private

结构体默认访问权限:public

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值