`

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 函数的运用)以及在复杂数据结构组织和函数返回多值场景中的实际应用。...

    深入理解C++11:C++11新特性解析与应用

    以上仅是C++11新特性的一部分,书中还会详细介绍这些特性的具体用法,以及如何在实际项目中有效利用它们。此外,书中可能还会探讨C++11对旧有特性的改进,比如智能指针的增强,以及STL容器和算法的性能提升。通过...

    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++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

    C++中string的用法

    C++中string的用法 C++中的string类是C++标准程序库中的一部分,相比于C语言中的char*字符串,它具有更多的优点,例如不需要担心内存是否足够、字符串长度等问题。同时,作为一个类,它集成了许多操作函数,可以...

    C语言调用C++类中的方法

    最后,在C语言的主程序中,你可以通过这个函数指针调用C++的方法: ```c #include "cpp_interface.h" // 包含C语言接口头文件 int main() { cplusplus_method(); // 调用C++方法 return 0; } ``` 要注意的是,...

    C++课程:输入流运算符及实践应用-计算器项目

    内容概要:本文档主要介绍了C++课程中关于输入流和运算符的内容,旨在让学生能够正确定义变量、正确输入数据、掌握表达式和多种运算符(算术、关系)以及条件分支语句。文档通过具体实例引导学生动手实现一个简单...

Global site tag (gtag.js) - Google Analytics