C++类定义需用class关键字,包含成员变量和函数,访问控制符后加冒号及分号;对象通过类名声明创建,用点操作符访问public成员;构造函数同名无返回类型,推荐用初始化列表赋值。
创建C++类和对象很简单:先用class关键字定义类(描述“是什么”和“能做什么”),再用类名声明变量,就得到对象(具体的“实例”)。
类是自定义类型,封装数据(成员变量)和行为(成员函数)。基本结构如下:
语法示例:
class Person {
public: // 访问控制:public表示外部可访问
std::string name; // 成员变量:存储数据
int age;
void introduce() { // 成员函数:定义行为
std::cout << "Hi, I'm " << name << " and I'm " << age << " years old.\n";
}};
Person),这是常见约定public:之后的成员可以从类外直接调用;不写访问限定符默认是private(外部不可见);不能省——这是C++语法要求,容易遗漏类只是模板,对象才是真实存在的个体。创建方式和定义普通变量类似:
Person alice;// 栈上创建对象(自动存储期) Person bob; // 另一个独立对象,有自己的一份name和age
alice.name和bob.name互不影响)Person* p = new Person();,记得delete p;或改用智能指针通过点操作符.访问公有成员:
alice.name = "Alice"; alice.age = 28; alice.introduce(); // 输出:Hi, I'm Alice and I'm 28 years old.
public区的成员;private成员(如内部状态校验逻辑)对外不可见const(如void print() const;),它就不能修改成员变量,适合只读操作this指针访问当前对象,一般隐式使用,无需显式写出默认情况下,对象成员是未初始化的(尤其是内置类型如int)。用构造函数在创建时自动赋初值:
class Person {
public:
std::string name;
int age;
Person(std::string n, int a) : name(n), age(a) {} // 成员初始化列表(推荐写法)
// 或写成函数体:Person(std::string n, int a) { name = n; age = a; }};
void都不能写)Person()(默认构造)、Person("Tom")等基本上就这些。类定义 + 对象声明 + 成员访问,三步就能跑起最基础的面向对象代码。后续可以逐步加入析构函数、拷贝控制、继承和多态——但起步时,先写好一个能正确初始化、能调用方法的类,就已经迈过门槛了。