第四章 C++中的作用:: 与Namespace

前言 C++  学习路线,本人主要也是为了记录一下自己的学习过程

目录

一、 Namespace

二、作用域

1类作用域与区分局部、全局的

2全局作用域符号

当全局变量在局部函数中与其中某个变量重名,那么就可以用::来区分

3::是C++里的作用域分解运算符,


一、 Namespace

 Namespace 命名空间 避免库相互污染,使用两种方式

1用using 引用声明的空间

2声明的空间:: 引用类生成对象

namespace A{

class Car {

    friend void test(Car* c);

    friend void test1(Car* );

//    virtual void test();

    

    int i;

public:

    void red(int i);

    Car(int i);

    ~Car();



};

}

二、作用域

//如果声明A using namespace A;

1声明后Car cc(2)直接可以使用

2未声明A::Car cc(2);

2有两个命名为Car冲突,声明后还需要A::Car cc(2);

1类作用域与区分局部、全局的

A,B表示两个类,在A,B中都有成员member。

那么:

1、A::member就表示类A中的成员member。

2、B::member就表示类B中的成员member

2全局作用域符号

当全局变量在局部函数中与其中某个变量重名,那么就可以用::来区分

char a; 全局变量

{

char  a; 局部变量

::char a; 全局变量

}

3::是C++里的作用域分解运算符,

比如声明了一个类A,类A里声明了一个成员函数voidf(),但没有在类的声明里给出f的定义,

那么在类外定义f时,就要写成voidA::f(),表示这个f()函数是类A的成员函数

namespace A{

void bule(int i);

class Car {

    friend void test(Car* c);

public:

    void red(int i);

    Car(int i);

    ~Car();

};
}

// 声明方法在作用域,可以在任何地方进行实现,

// 作用域名直接调用声明的方法 A::bule

void A::bule(int i){
    cout << " int_bule "<<i <<endl;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值