相关疑难解决方法(0)

何时使用内联功能何时不使用?

我知道inline是对编译器的提示或请求,用于避免函数调用开销.

那么在什么基础上可以确定函数是否是内联的候选者?在哪种情况下应该避免内联?

c c++ inline

173
推荐指数
5
解决办法
9万
查看次数

C++的内联是不是完全可选的?

我有一个有内联成员的类,但后来我决定从头中删除实现,所以我将函数的成员体移到cpp文件中.起初我刚刚在头文件中留下了内联签名(草率我),程序无法正确链接.然后我修好了标题,当然一切正常.

但是不是内联完全可选吗?

在代码中:

第一:

//Class.h
class MyClass
{
   void inline foo()
   {}
};
Run Code Online (Sandbox Code Playgroud)

接下来改为(不会链接):

//Class.h
class MyClass
{
   void inline foo();
};

//Class.cpp
void MyClass::foo()
{}
Run Code Online (Sandbox Code Playgroud)

然后(将工作正常):

//Class.h
class MyClass
{
   void foo();
};

//Class.cpp
void MyClass::foo()
{}
Run Code Online (Sandbox Code Playgroud)

我认为内联是可选的,想象我可能会因为我的邋iness警告,但没想到链接错误.在这种情况下编译器应该做的正确/标准的事情是什么,我是否应该根据标准得到我的错误?

c++ inline

20
推荐指数
3
解决办法
2455
查看次数

如何在C++中的派生类的构造函数中初始化基类的const变量?

我有一个没有构造函数的抽象C++类.它应该是一个基类,所以其他类可以继承它.我想要做的是在基类中声明一个常量变量,并在每个派生类的构造函数中初始化它,但在每个类中没有其他地方.它在C++中是否合法?如果是这样,我该怎么做?

c++ inheritance constructor const

18
推荐指数
1
解决办法
1万
查看次数

标签 统计

c++ ×3

inline ×2

c ×1

const ×1

constructor ×1

inheritance ×1