21xrx.com
2025-03-22 08:24:34 Saturday
文章检索 我的文章 写文章
C++中不同类的函数调用方法详解
2023-06-22 18:23:02 深夜i     36     0
C++ 函数 调用 方法

C++中的函数调用方法可以分为两种:成员函数调用和非成员函数调用。在不同的类中,函数的调用方式也会有所不同。

1. 成员函数调用

成员函数是定义在类中的函数,它们可以被类对象调用。成员函数分为两种:非常量成员函数和常量成员函数。

非常量成员函数可以修改类的数据成员,而常量成员函数不能修改类的数据成员。

对于非常量成员函数的调用,可以通过对象名称或对象指针来调用。例如:

class MyClass {
public:
  void func1() { }
  void func2() const { }
};
int main() {
  MyClass obj;
  obj.func1();      // 对象名称调用非常量成员函数
  MyClass* ptr = &obj;
  ptr->func1();      // 对象指针调用非常量成员函数
  const MyClass obj2;
  obj2.func2();      // 对象名称调用常量成员函数
  const MyClass* ptr2 = &obj2;
  ptr2->func2();     // 对象指针调用常量成员函数
  return 0;
}

2. 非成员函数调用

非成员函数是定义在类外部的函数,它们可以直接通过函数名来调用。非成员函数可以访问类的公有成员,但是不能访问私有成员。

对于非成员函数的调用,可以直接通过函数名或者通过类名作用域来调用。例如:

class MyClass {
public:
  void func() { }
};
void outsideFunction(MyClass obj) {
  obj.func();
}
int main() {
  MyClass obj;
  outsideFunction(obj);          // 直接调用函数名
  MyClass::func();            // 通过类名作用域调用
  return 0;
}

需要注意的是,如果非成员函数与类的成员函数同名,那么需要使用类名作用域来调用非成员函数,否则会出现函数重定义的错误。

总结:

在C++中,不同类的函数调用方法可以分为成员函数和非成员函数两种,根据函数的类型和访问权限的不同,可以通过不同的方式来进行调用。对于重载、隐藏等相关问题,需要结合具体的情况来进行判断和使用。掌握C++的函数调用方法,是编写高质量代码的重要基础。

  
  

评论区