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的区别

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