类外的成员函数定义
Member function definition outside of class
是否可以在类声明之外定义函数或方法?如:
class A
{
int foo;
A (): foo (10) {}
}
int A::bar ()
{
return foo;
}
可以在类之外定义但不声明方法,类似于在C中创建函数原型然后再定义它们,即:
class A
{
int foo;
A (): foo (10) {}
int bar();
}
// inline only used if function is defined in header
inline int A::bar () { return foo; }
可以,但是您必须首先在类中声明它,然后您可以在其他地方(通常是源文件)定义它:
// Header file
class A
{
int foo = 10;
int bar(); // Declaration of bar
};
// Source file
int A::bar() // Definition of bar
{
return foo;
}
你可以在你的类之外定义一个方法
// A.h
#pragma once
class A
{
public:
A (): foo (10) {}
int bar();
private:
int foo;
};
// A.cpp
int A::bar ()
{
return foo;
}
但是你不能在你的类之外声明一个方法。声明必须至少在类中,即使定义稍后出现。这是将*.h
文件中的声明和*.cpp
文件中的实现分开的一种常用方法。
是的,我们可以在类内部声明方法/函数,并可以在类外部使用类名定义它前面有作用域解析操作符,如。
class Calculator{
int num1,num2;
public:
void setData(int x, int y){
num1 = x; num2 = y;
}
//Declaration of sum function inside the class
int sum();
};
// Definition of sum function outside the class
int Calculator::sum(){
return num1+num2;
}
是的,可以在类之外定义成员函数。有两种定义成员函数的方法:
可以在类定义内部定义在类定义之外使用作用域操作符定义。
要在类定义之外定义成员函数,必须使用scope resolution:: operator以及类名和函数名。要了解更多信息,您可以阅读此处的最佳示例和解释
相关文章:
- 不同翻译单元中不可重载的非内联函数定义
- Visual Studio中的函数声明和函数定义问题
- 编写代码时C++出现错误:错误 1 错误 C2601:'circle':本地函数定义是非法的
- 具有enable_if外部类原型的模板类构造函数定义
- 类的前向声明之后的类成员函数定义,在类声明之前
- 为函数定义符号不明确的指针参数
- C++模板专用化 - 无法匹配函数定义
- 错误:在第 6 行'{'标记之前,此处不允许使用函数定义
- 找不到 #define 的函数定义
- 根据类型特征更改函数定义?
- 将抽象基类中的所有纯虚函数定义为 varaidaic 模板
- 命名空间更改函数定义
- "Type&"与C++函数定义中的"Type*"
- C++:为什么允许在另一个函数中声明函数,而不允许在函数定义中声明?
- 如何从 C++ 中的现有模板函数定义新函数
- 私有在函数定义/实现的返回值范围内是什么意思 (c++)?
- 越界成员函数定义是否需要一个完全限定的类名,直到全局范围
- 为什么c++允许成员函数定义中实例的私有成员访问
- Qt基类函数定义
- C++函数定义中参数列表后面额外一对括号的含义