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";
}};
立即学习“C++免费学习笔记(深入)”;
- 类名首字母通常大写(如
Person),这是常见约定 -
public:之后的成员可以从类外直接调用;不写访问限定符默认是private(外部不可见) - 类定义末尾的分号
;不能省——这是C++语法要求,容易遗漏
怎么创建对象(实例)?
类只是模板,对象才是真实存在的个体。创建方式和定义普通变量类似:
享有盛誉的PHP高级教程,Zend Framework核心开发人员力作,深入设计模式、PHP标准库和JSON 。 今天,PHP已经是无可争议的Web开发主流语言。PHP 5以后,它的面向对象特性也足以与Java和C#相抗衡。然而,讲述PHP高级特性的资料一直缺乏,大大影响了PHP语言的深入应用。 本书填补了这一空白。它专门针对有一定经验的PHP程序员,详细讲解了对他们最为重要的主题
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; }};
立即学习“C++免费学习笔记(深入)”;
- 构造函数名必须和类名完全相同,无返回类型(连
void都不能写) - 成员初始化列表(冒号后)比在函数体内赋值更高效,尤其对复杂对象
- 可以重载多个构造函数,支持不同方式创建对象,比如
Person()(默认构造)、Person("Tom")等
基本上就这些。类定义 + 对象声明 + 成员访问,三步就能跑起最基础的面向对象代码。后续可以逐步加入析构函数、拷贝控制、继承和多态——但起步时,先写好一个能正确初始化、能调用方法的类,就已经迈过门槛了。









