1、C++ 类和对象
C++中,类是一种用户自定义的数据类型,它将数据(属性,也称为数据成员)和操作这些数据的函数(行为,也称为成员函数)组合在一起。C++是一种面向对象的编程语言。这也是C++与C语言的最大区别,而类和对象就是C++面向对象的基础,对类和对象具有深刻的理解,对于编写C++程序来说也是有一定的帮助。
#include <iostream> #include <string> using namespace std; // 定义一个类 class Person { public: // 数据成员 string name; int age; // 构造函数 Person(string n, int a) : name(n), age(a) {} // 成员函数 void introduce() { cout << "My name is " << name << " and I am " << age << " years old." << endl; } }; int main() { // 创建对象 Person p1("John", 30); // 调用成员函数 p1.introduce(); return 0; }
2、定义声明类
类的定义和声明有时会分开进行,尤其是在需要提供接口和实现分离时。通常,类的声明是在头文件中进行,而类的定义和实现是在源文件中进行。要创建一个类,需要使用关键字class
:
#include <iostream> #include<cstring> using namespace std; class Person { public: string name; int age; char sex; }; int main() { return 0; }
2、创建对象
在C++中,对象是从类中创建的。我们已经创建了名为Person
的类,所以现在可以使用它来创建对象。
要创建Person
的对象,指定类名,后跟对象名。
例如:
#include <iostream> #include<cstring> using namespace std; class Person { public: string name; int age; char sex; }; int main() { Person person1,person2; return 0; }
3、对象方法
对象方法(成员函数)是与类的对象关联的函数,用于定义类的行为。它们可以访问和操作对象的成员变量。对象方法分为两种:普通成员函数和常成员函数。
1)普通成员函数
普通成员函数定义了对象的行为,能够访问和修改对象的成员变量。
#include <iostream> using namespace std; class Car { public: string brand; int year; // 构造函数 Car(string b, int y) : brand(b), year(y) {} // 普通成员函数 void displayInfo() { cout << "Brand: " << brand << ", Year: " << year << endl; } }; int main() { Car myCar("Toyota", 2020); myCar.displayInfo(); // 调用成员函数 return 0; }
2)常成员函数(const成员函数)
常成员函数是指不能修改对象的成员变量的成员函数。它们通常用于保证对象状态不被改变。
#include <iostream> using namespace std; class Car { public: string brand; int year; // 构造函数 Car(string b, int y) : brand(b), year(y) {} // 常成员函数 void displayInfo() const { cout << "Brand: " << brand << ", Year: " << year << endl; } }; int main() { Car myCar("Honda", 2021); myCar.displayInfo(); // 调用常成员函数 return 0; }
3)静态成员函数(Static Methods)
静态成员函数属于类本身,而不是某个特定的对象。它们不能访问非静态成员。
#include <iostream> using namespace std; class Car { public: static int carCount; // 静态数据成员 // 静态成员函数 static void displayCount() { cout << "Total cars: " << carCount << endl; } }; // 静态成员变量的定义 int Car::carCount = 0; int main() { Car::carCount = 5; Car::displayCount(); // 调用静态成员函数 return 0; }