类外的成员函数定义

Member function definition outside of class

本文关键字:函数 定义 成员      更新时间:2023-10-16

是否可以在类声明之外定义函数或方法?如:

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以及类名和函数名。要了解更多信息,您可以阅读此处的最佳示例和解释