c++隐式调用和显示调用

调用

  • 隐式调用
    • 动态库又分显式调用和隐式调用
      • 三级目录

隐式调用

动态库和静态库,动态的体积小,程序运行时需要依赖使用动态库文件(.so文件)使用静态库一旦编译好,则不需要依赖静态库文件了(.a文件)

动态库又分显式调用和隐式调用

隐式调用 显式调用
调用代码少 调用时加在动态库的名称和函数名称
调用起来和使用当前项目下的函数一样直接 自己加载和卸载(更合理,大项目都用显式)
makefile中链接命令需要加入参数-l命令 更加灵活,必须加头文件dlfcn.h

三级目录

est1的构造函数带一个int型的参数,代码23行会隐式转换成调用Test1的这个构造函数。而Test2的构造函数被声明为explicit(显式),这表示不能通过隐式转换来调用这个构造函数,因此代码24行会出现编译错误。 普通构造函数能够被隐式调用 。而explicit构造函数只能被显式调用。

class Test1
{
public:
    Test1(int n)
    {
        num=n;
    }//普通构造函数
private:
    int num;
};
class Test2
{
public:
    explicit Test2(int n)
    {
        num=n;
    }//explicit(显式)构造函数
private:
    int num;
};
int main()
{
    Test1 t1=12;//隐式调用其构造函数,成功
    Test2 t2=12;//编译错误,不能隐式调用其构造函数
    Test2 t2(12);//显式调用成功
    return 0;
}

你可能感兴趣的:(c++,开发语言,后端)