当我要建立我的开发环境(SDLSimple DirectMediaLayer),我下载了由该网站提供的包,从readme.txt文件中我发现,我既需要.lib和.dll...
我的问题是:
.libforwindows就像.afor linux,是静态库,而.dllforwindows就像.sofor linux,是共享库,这是正确的吗?.lib或.dll,因为它们所做的工作是相同的?那么为什么要在一个程序中同时获得两个呢?.dll,如果我的内存服务我是对的,好处之一shared library是它们可以在程序运行时更新,那么人们怎么能这样做,如果我们更新.dll文件,正在运行的程序怎么能得到知道的变化.dll并将其重新加载到内存中?请参阅以下代码:
std::vector<int> v1{1, 2, 3};
std::vector<int> v2 = {1, 2, 3};
Run Code Online (Sandbox Code Playgroud)
我的问题是:
这两者有区别吗?我知道第一个必须是列表初始化,但第二个怎么样?
因为第二个有一个赋值符号,所以我认为编译器会首先使用它std::initializer_list来创建一个临时符号vector,然后使用复制构造函数将temp复制vector到v2.这是事实吗?
c++ initialization initializer-list c++11 list-initialization
代码 :
class Base {
...
};
class Derived : public Base {
void OnlyOwnedByDerived{
...
}
};
Run Code Online (Sandbox Code Playgroud)
问题是: 1. 如果我使用基类的智能指针来引用派生类,这样做的原因是我想获得只适合虚函数的动态绑定的好处。但是如果我想使用只属于派生类的函数,我该怎么做?
static_cast不同类的智能指针之间给了我一个错误......