类定义的内联函数分为以下3种:
1.隐式内联
class Person
{
public:
Person(const string &name)
{
Name = name;
}
void printName()//printName 定义在类里面是隐式内联函数
{
cout << Name << endl;
}
private:
string Name;
};
2)在类里面显示声明,在类外面定义
class Person
{
public:
Person(const string &name)
{
Name = name;
}
inline void printName();//成员被函数前加了inline是显式内联函数
//在类里面显式声明
private:
string Name;
};
void Person::printName()
{//在类外面定义
cout << Name << endl;
}
3.“追加”内联
表示在类里面没有显式声明,在类外显示定义了内联。
class Person
{
public:
Person(const string &name)
{
Name = name;
}
void printName();
//在类里面没有显式声明
private:
string Name;
};
inline void Person::printName()//成员被函数前加了inline是显式内联函数
{//在类外面显式定义
cout << Name << endl;
}
4.第四种常见的成员函数不是内联函数
定义不再类里面,且声明和定义都没有inline
class Person
{
public:
Person(const string &name)
{
Name = name;
}
void printName();
//在类里面没有显式声明
private:
string Name;
};
void Person::printName()//不是内联函数
{//在类外面也没有显式定义
cout << Name << endl;
}