`

C++中::的用法

    博客分类:
  • C++
C++ 
阅读更多
::表示作用域,和所属关系
1)global scope(全局作用域符),用法(::name)
2)class scope(类作用域符),用法(class::name)
3)namespace scope(命名空间作用域符),用法(namespace::name)
例如:
int g;
class A : PPP::B{//表示B类属于PPP命名空间
public:
int a;
int test();
static int add(int a,int b);
}

int A::test(){//表示test属于A类
return 0;
}

int A::add(int a,int b){
return a+b;
}

int test2(){
int a=::g; //用全局变量g
int result=A::add(a,2);//表示静态方法属于A类
return result
}




---------------------------------------
。 -> ::的不同

首先介绍一下C语言中的结构。对于一个结构来说,
struct MyStruct {
int member_a;
};
如果有个变量MyStruct s,那么使用其中的成员元素时可以用
s.member_a = 1;
如果采用指针方法访问,比如MyStruct * ps,那么同样的访问必须用箭头号:
ps->member_a = 1;

::只用在类成员函数和类成员变量中。比如,声明一个类:
class CA {
public:
static int ca_var;
static int add(int a, int b);
int add(int a);
};
那么在实现这个函数时,必须这样书写:
int CA::add(int a, int b)
{
return a + b;
}
另外,双冒号也常用于类静态方法和静态成员的调用。
int test(){
int a=CA::ca_var
return CA::add(a,2);
}




分享到:
评论

相关推荐

    详解C++ thread用法总结

    C++11的标准类std::thread对线程进行了封装,定义了C++11标准中的一些表示线程的类、用于互斥访问的类与方法等。应用C++11中的std::thread便于多线程程序的移值。 std::thread类成员函数: (1)、get_id:获取线程ID...

    C++高效编程:内存与性能优化(pdf版)

    本书深入探讨了如何在C++编程中高效地使用内存资源,以及如何进行性能优化,以编写出既高效又优雅的代码。 书籍作者Rene Alexander和Graham Bensley均拥有十几年的软件开发经验,他们曾为多个不同的公司和项目提供...

    深入探究 C++ 中 std::function 的强大功能与多样用途

    本文详细阐述了 C++ 中std::function的用途、特性以及其在实际编程中的多种应用场景。...文中提供了丰富的代码示例,以帮助读者更好地理解和掌握std::function的使用方法,从而提升 C++ 编程的灵活性和效率。

    Accelerated C++ : Practical Programming by Example、C++ 快速入门 —— 跟着实例学编程

    和市面上大多数C++教程不同,本书不是从"C++中的C"开始讲解,而是始于地道的C++特性.从一开始就使用标准库来写程序,随着讲述的逐渐深入,又一一解释这些标准库组件所依赖的基础概念.另外,和其他C++教材不同的是,这本书...

    C++ reflect 反射

    我们可以遍历`metaobject`的成员,查找指定名称的方法: ```cpp struct MyClass { void myMethod() {} }; auto meta = get_metaobject(); for (const auto& member : meta.members()) { if (std::holds_...

    C++ 中 std::tuple 与 std::pair 的全面解析与应用实践

    std::tuple,阐述其相较于 std::pair 的更广泛通用性,如可容纳多个不同类型元素的特性、元素访问的独特方法(如 std::get 函数和 std::tie 函数的运用)以及在复杂数据结构组织和函数返回多值场景中的实际应用。...

    mongoDB数据库的c++接口与库文件VS2015

    在C++环境中,可以使用MongoDB的C++驱动程序来访问和操作数据库。在本主题中,我们将深入探讨如何在Visual Studio 2015中利用C++接口与库文件与MongoDB进行交互。 首先,`mongo C++` 指的是MongoDB的C++驱动程序,...

    C++ 中 std::optional 与 std::expected 的深度辨析

    std::optional和std::expected都是 C++ 中非常有用的类型,它们在处理...随着 C++ 标准的不断发展,这两个类型以及相关的编程范式将在 C++ 编程领域发挥越来越重要的作用,开发者应深入理解并熟练掌握它们的使用方法。

    C++开发技术标准20201102.docx

    C++开发技术标准是指在C++编程语言中的一系列编程规范和约定,旨在确保编程代码的可读性、可维护性和可扩展性。这些标准涵盖了开发环境、代码规范、命名惯例、编程风格等多个方面。 开发环境 在C++开发中,开发...

    C++经典:C++捷径教程(第3版)

    - 特殊类型如指针和引用的使用方法。 3. **控制流语句**: - 条件判断语句(if-else、switch-case)。 - 循环控制语句(while、for、do-while)。 - 跳转语句(break、continue)的应用场景与注意事项。 4. **...

    Android C++高级编程:使用NDK(完整版带书签).pdf

    接下来,书中详细讲解了Android NDK中的C++支持,包括C++11及更高版本的标准库、STL的使用、异常处理和RTTI。这部分内容有助于开发者掌握在Android平台上的现代C++编程技巧。 在深入探讨NDK编程时,作者会介绍JNI...

    计算机程序设计(C++):C++之字符数组和字符串.doc

    字符数组的初始化有两种方法:一种是用字符对字符数组初始化,另一种是用字符串常量对字符数组初始化。例如: char rat[5]={'H','E','L','L','O'}; char panic[6]={"HELLO"}; 在第二种方法中,字符数组panic中不仅...

    《C++ for Java Programmers》高清完整英文PDF版

    书中强调了STL的重点内容和模板的有效使用方法,这为C++程序员提供了强大的数据结构和算法库。 知识点七:Java和C++的结合。书中特别提到了如何使用Java原生接口(JNI),这是为了在Java和C++之间建立桥接,让两种...

    C++11中std::future的具体使用方法

    在C++11标准库中,`std::future`是一个重要的工具,用于处理异步编程。它提供了一种方式来获取在另一个线程或者异步操作中计算的结果,确保了线程安全的数据访问。`std::future`的核心特性是它引用的共享状态是唯一...

    C++编译器:MinGW64 5.1.4版本(官方版)

    C++官方编译器:MinGW64, 5.1.4版本,完整版下载,绝无缺漏。通过cmd运行bin文件夹下的g++.exe或gcc.exe即可一键编译。用法示例:g++.exe hello.cpp -o hello.exe -Wall

    GESP C++ 专题:常用数学函数试题及答案

    第一部分为基础知识填空题,涵盖C++中常用的数学函数定义,如绝对值函数、幂函数、平方根函数、取整函数、最值函数、取余函数、对数函数以及随机函数的基本用法与形式填写;第二部分则是将理论运用于实践,提供了...

    C++程序设计-原理-与-实践第2版—进阶篇.pdf

    书中详细介绍了函数模板和类模板的用法,以及模板元编程的概念,使读者能够写出更具通用性的代码。 2. **STL(标准模板库)**:STL是C++标准库的一部分,包含容器(如vector、list、set)、迭代器、算法和函数对象...

Global site tag (gtag.js) - Google Analytics