C++类的成员函数修饰符总结

C++类的成员函数修饰符总结

const:

用于成员函数,表示该函数不会修改类的成员变量。

示例:

class MyClass {

public:

void myFunction() const {

// 不能修改成员变量

}

};

static:

用于类的成员函数,表示该函数属于类而不是类的实例。

静态成员函数不能访问非静态成员变量。

示例:

class MyClass {

public:

static void myFunction() {

// 可以访问静态成员变量

}

};

virtual:

用于类的成员函数,表示该函数可以在派生类中被重写。

示例:

class Base {

public:

virtual void myFunction() {

// 可以被派生类重写

}

};

class Derived : public Base {

public:

void myFunction() override {

// 重写基类的函数

}

};

override:

用于派生类中的成员函数,明确表示该函数是重写基类中的虚函数。

示例:

class Base {

public:

virtual void myFunction() {

// 基类的虚函数

}

};

class Derived : public Base {

public:

void myFunction() override {

// 明确重写基类的虚函数

}

};

final:

用于类的成员函数,表示该函数不能在派生类中被重写。

示例:

class Base {

public:

virtual void myFunction() final {

// 不能在派生类中被重写

}

};

class Derived : public Base {

public:

// 错误:不能重写 final 函数

// void myFunction() override {}

};

inline:

用于函数,建议编译器将函数内联展开,以减少函数调用的开销。

示例:

inline int add(int a, int b) {

return a + b;

}

noexcept:

用于函数,表示该函数不会抛出异常。

示例:

void myFunction() noexcept {

// 不会抛出异常

}

constexpr:

用于函数,表示该函数可以在编译时求值。

示例:

constexpr int square(int x) {

return x * x;

}

friend:

用于函数,表示该函数可以访问类的私有成员。

示例:

class MyClass {

private:

int secret;

friend void friendFunction(MyClass& obj);

};

void friendFunction(MyClass& obj) {

obj.secret = 42; // 可以访问私有成员

}

explicit:

用于构造函数,防止隐式类型转换。

示例:

class MyClass {

public:

explicit MyClass(int x) {

// 只能显式调用

}

};

void func(MyClass obj) {}

int main() {

// MyClass obj = 10; // 错误:不能隐式转换

MyClass obj(10); // 正确:显式调用

func(MyClass(10)); // 正确:显式调用

}

相关文章

dnf手游魂裁决刃国殇怎么获取 魂裁决刃国殇属性与获取详解
5升油等于多少斤(5升油等于多少斤准确答案)
成都世界杯今日抽签!中央5台11月30直播表:CCTV5、CCTV5+节目单