C++中可以使用struct、class来定义一个类
1.类的定义
class Student {
public:
int m_no;
void study() {
cout << "study() - m_no is " << m_no << endl;
}
};
2.类的定义
struct Person {
//private:
// 成员变量
int m_age;
// 成员函数
void run() {
cout << "run() - m_age is " << m_age << endl;
}
}
struct和class的区别
- 1.struct的默认成员权限是public
- 2.class的默认成员权限是private
int main() {
// 在栈空间分配了内存给person对象
// 这个person对象的内存会自动回收,不用开发人员去管理
// 这样写就直接创建了对象
Person person;
person.m_no = 20;
person.run();
// 4个字节,这个对象就是m_no的大小,m_no地址就是person地址
cout << sizeof(person) << endl;
Person person2;
person2.age = 30;
person2.run();
Student student;
student.no = 100;
student.study();
getchar();
return 0;
}
通过指针访问对象
Person person;
person.m_age = 20;
person.run();
Person *pPerson = &person;
pPerson->m_age = 30;
pPerson->run();
实际开发中,用class表示类比较多
# C++编程规范
每个人都可以有自己的编程规范,没有统一的标准,没有标准答案,没有最好的编程规范
全局变量:g_ 示例:int g_height; 成员变量:m_ 示例:int m_height; 静态变量:s_ 示例:int s_height; 常量:c_ 示例:int c_height; 使用驼峰标识
# this ## this是指向当前对象的指针 对象在调用成员函数的时候,会自动传入当前对象的内存地址
struct Person {
int m_id;
int m_age;
int m_height;
// 函数跟对象没关系,访问函数是直接call 函数地址
// 函数不占用对象内存
// 函数代码在内存中只有一份,多个对象不会有多个函数
void display() {
cout << "m_id = " << this->m_id << endl;
cout << "m_age = " << this->m_age << endl;
cout << "m_height = " << this->m_height << endl;
}
};
可以利用this.m_age来访问成员变量么? 不可以,因为this是指针,必须用this->m_age