当前位置: 首页> 文旅> 酒店 > 【QT】C++单冒号‘:’和双冒号‘::’的大白话讲解

【QT】C++单冒号‘:’和双冒号‘::’的大白话讲解

时间:2025/7/10 12:16:28来源:https://blog.csdn.net/weixin_44939430/article/details/139808612 浏览次数:0次

在C++编程中,双冒号 (::) 和单冒号 (:) 是 各自有不同的用途。

双冒号 ::

双冒号在C++中被称为“作用域解析运算符”(Scope Resolution Operator),主要用于以下几种情况:

  1. 全局作用域

    int x = 10;void foo() {int x = 20;std::cout << ::x << std::endl; // 输出全局变量x的值,结果是10
    }
    

    在这个例子中,::x表示全局变量x,即使在foo函数中存在局部变量x

  2. 类的静态成员

    class MyClass {
    public:static int staticVar;
    };int MyClass::staticVar = 100; // 使用作用域解析运算符定义类的静态成员变量
    

    在这里,MyClass::staticVar用于定义和访问类MyClass的静态成员变量。

  3. 命名空间

    namespace MyNamespace {int var = 30;
    }int main() {std::cout << MyNamespace::var << std::endl; // 访问命名空间内的变量,结果是30
    }
    

    使用MyNamespace::var可以访问命名空间MyNamespace中的变量var

单冒号 :

单冒号在C++中有多种用途,主要用于以下几种情况:

  1. 构造函数初始化列表

    class MyClass {
    public:MyClass(int value) : memberVar(value) {}
    private:int memberVar;
    };
    

    在这个例子中,: memberVar(value)用于在构造函数中初始化成员变量memberVar

  2. 继承

    class Base {
    public:void baseFunction() {}
    };class Derived : public Base {
    public:void derivedFunction() {}
    };
    

    这里,class Derived : public Base表示类Derived继承自类Base

  3. 条件运算符

    int a = 10;
    int b = 20;
    int max = (a > b) ? a : b; // 如果a大于b,则max等于a,否则max等于b
    

    ?:一起构成了条件运算符,用于简洁地实现条件判断。

关键字:【QT】C++单冒号‘:’和双冒号‘::’的大白话讲解

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: