概念
C++人为万事万物都是对象,对象就有其属性和行为,如汽车的属性有轮胎,方向盘和车灯等,可以载人,开空调等行为。
语法
class 类名
{访问属性:属性/行为
};
class和struct区别
- struct的默认权限是public
- class的默认权限是private
私有权限的好处
- 可以自行控制读写权限
- 对于写入操作,可以检查数据的有效性。
构造函数分类和调用
- 分类
- 按参数分类:有参构造和无参构造
- 按类型分类:普通构造和拷贝构造
- 调用方式
- 括号法
- 显示法
- 隐式转换法
程序源码
#include <iostream>
#include <string>using namespace std;//定义类
class Person
{
public:Person() {cout << "construct ()" << endl;}Person(int age){this->age = age;cout << "construct (age)" << endl;}~Person() {cout << "destruct" << endl;}private:int age;
};int main()
{//括号法Person p1; //调用无参构造函数Person p2(18); //调用有参构造函数//Person p3(); //调用无参构造函数,不要使用(),会误以为定义函数(函数的定义:int fun1())//显示法Person p4 = Person(10); //调用有参构造函数Person p5 = Person(p4); //调用拷贝构造函数//隐式转换法,匿名方式Person(10); //生成匿名对象,当前程序行结束,立即回收匿名对象//Person(p4); //不要使用拷贝构造函数来初始化匿名对象,这样写等价于Person (p4)=Person p4,语法会检测到重复定义对象return 0;
}