C++类和对象怎么创建?C++面向对象编程入门【详细教程】

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.namebob.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")

基本上就这些。类定义 + 对象声明 + 成员访问,三步就能跑起最基础的面向对象代码。后续可以逐步加入析构函数、拷贝控制、继承和多态——但起步时,先写好一个能正确初始化、能调用方法的类,就已经迈过门槛了。