C++中创建和使用类需用class关键字封装数据与行为,通过对象调用功能;核心包括私有成员变量、公有成员函数、访问控制及构造函数,须用作用域解析符实现类外定义,并推荐初始化列表提升效率。
在C++中创建和使用类,核心是用 class 关键字定义数据和行为的封装体,再通过对象实例调用其功能。重点在于理解成员变量、成员函数、访问控制(public/private)以及构造函数的作用。
类声明通常包括成员变量(存储状态)和成员函数(提供行为),并用访问限定符控制可见性。默认是 private,一般把数据设为 private,接口设为 public:
// Person.h(头文件中声明)
class Person {
private:
std::string name;
int age
;
public:
Person(std::string n, int a); // 构造函数
void introduce() const;
int getAge() const;
void setAge(int a);
};
成员函数定义可写在类外(通常放在 .cpp 文件里),需用作用域解析符 :: 指明所属类:
// Person.cpp
#include "Person.h"
#include
Person::Person(std::string n, int a) : name(n), age(a) {}
void Person::introduce() const {
std::cout << "Hi, I'm " << name << " and I'm " << age << " years old.\n";
}
int Person::getAge() const { return age; }
void Person::setAge(int a) { if (a >= 0) age = a; }
类定义完成后,就可以像内置类型一样创建对象。支持多种初始化方式,调用公有成员函数完成交互:
Person p1("Alice", 25);
Person p2 = Person("Bob", 30);
Person p3;
p1.introduce();、std::cout
初学容易忽略但影响深远的点:
void 都不能写)const 成员函数不能修改成员变量(除非该变量被声明为 mutable): name(n), age(a))而非赋值方式初始化成员,尤其对自定义类型更高效基本上就这些。类是 C++ 面向对象的起点,不复杂但容易忽略访问控制和初始化细节。