2002年世界杯决赛_2018俄罗斯世界杯 - dzlpgs.com

第十一章 C++成员函数与静态成员详解

第十一章 C++成员函数与静态成员详解

1. 概述在C++中,成员函数是定义在类内部的函数,用于操作类的对象。静态成员是属于整个类而不是类的对象的成员。本文将详细讲解C++中的成员函数和静态成员,并结合代码和实际案例进行演示。

2. 成员函数的定义和使用2.1 成员函数的定义成员函数由两部分组成:声明和定义。声明位于类的内部,在类的外部进行定义。

代码语言:javascript代码运行次数:0运行复制class MyClass {

public:

// 成员函数的声明

void memberFunction(int arg);

// 其他成员和数据...

};

// 成员函数的定义

void MyClass::memberFunction(int arg) {

// 函数体

}2.2 成员函数的使用成员函数通过一个特殊的指针this访问调用它的对象。可以使用.运算符来调用成员函数。

代码语言:javascript代码运行次数:0运行复制MyClass obj;

obj.memberFunction(10);2.3 访问成员变量成员函数可以直接访问类中的成员变量。对于非static的成员函数,可以直接使用成员变量的名称来访问。

代码语言:javascript代码运行次数:0运行复制class MyClass {

public:

int value;

void displayValue() {

cout << "Value: " << value << endl;

}

};2.4 静态成员函数静态成员函数是一种属于类而不是类的对象的函数。它们在编译时就存在,无需创建对象即可访问。

代码语言:javascript代码运行次数:0运行复制class MyClass {

public:

static void staticFunction() {

// 静态成员函数的函数体

}

};

// 调用静态成员函数

MyClass::staticFunction();2.5 常量成员函数常量成员函数是一种不修改成员变量的成员函数。它可以保证在被调用时不会改变对象的状态。通过在声明和定义中加上const关键字来实现。

代码语言:javascript代码运行次数:0运行复制class MyClass {

public:

void displayValue() const {

// 输出值但不修改成员变量

cout << "Value: " << value << endl;

}

};3. 示例案例:购物车程序下面是一个简单的购物车程序示例,用于演示成员函数和静态成员的使用。

代码语言:javascript代码运行次数:0运行复制#include

#include

using namespace std;

class Cart {

private:

vector items;

static int itemCount;

public:

Cart() {

itemCount++;

}

~Cart() {

itemCount--;

}

void addItem(const string& item) {

items.push_back(item);

}

void removeItem(const string& item) {

for (auto it = items.begin(); it != items.end(); ++it) {

if (*it == item) {

items.erase(it);

break;

}

}

}

void displayItems() const {

if (items.empty()) {

cout << "Cart is empty." << endl;

} else {

cout << "Items in cart:" << endl;

for (const auto& item : items) {

cout << "- " << item << endl;

}

}

}

static int getItemCount() {

return itemCount;

}

};

int Cart::itemCount = 0;

int main() {

Cart cart1;

Cart cart2;

cart1.addItem("Apple");

cart1.addItem("Banana");

cart1.displayItems();

cart2.addItem("Orange");

cart2.displayItems();

cart1.removeItem("Apple");

cart1.displayItems();

cout << "Total carts: " << Cart::getItemCount() << endl;

return 0;

}运行结果:

代码语言:javascript代码运行次数:0运行复制Items in cart:

- Apple

- Banana

Items in cart:

- Orange

Items in cart:

- Banana

Total carts: 1以上示例代码中,我们定义了一个Cart类来表示购物车。它包含一个items向量用于存储添加的物品,并使用itemCount静态成员变量来记录购物车对象的数量。

通过调用成员函数addItem和removeItem,我们可以在购物车中添加和移除物品。调用成员函数displayItems可以显示购物车中的所有物品。

静态成员函数getItemCount可以返回购物车对象的总数。我们可以通过直接调用Cart::getItemCount()来获取购物车对象的数量信息。