美文网首页
C++语言基础(01)

C++语言基础(01)

作者: MrLuo | 来源:发表于2017-12-28 10:34 被阅读13次
    1.C与C++的关系

    1.C++可以与C代码进行混编
    2.C++面向对象编程语言、C面向过程的编程
    3.C++对C的一个增强


    2.指针常量和常量指针
    //1.指针常量
    //*p可以修改*p = 8;(OK)
    //p不可以修改 p++(ERROR)
    int a;
    int * const p = &a    
    
    //2.常量指针
    int a,b;
    //*p不可修改 *p = 8;(ERROR)
    //p 可以修改 p = &b  (OK)
    const int *p = &a;
    
    //指针的话看const离谁( 是‘*’  还是‘指针变量名’)比较近就是修饰谁的
                                                   
    //还有一种*p 和 p均不可改变了
    const int * const p = &a;    
    

    总结与理解:
    指针的值是要指向对象的地址。
    主要取决于const修饰谁, 指针常量修饰的是指针,故指针的值是不可以改变的。不可以进行p++操作指向下一个地址。

    常量指针是修饰指针指向的常量,这个常量的值不可以更改。


    3.C++命名空间的概念
    //标准命名空间(包含很多标准定义)
    using namespace std;
    

    作用:
    提供了更小范围的作用域
    用法:

    namespace NSP_A
    {
        int a = 9;
    }
    
    namespace NSP_B
    {
        int a = 12;
        //命名空间嵌套
    //::访问修
        namespace NSP_C
        {
            struct  Teacher
            {
                char name[20];
                int age;
            };
        }
    }
    
    void main()
    {
        //使用命名空间
        using namespace NSP_A;
        using namespace NSP_B;
        cout << NSP_A::a << endl;
        cout << NSP_B::a << endl;
        //system.out.println() line
    
        using NSP_B::NSP_C::Teacher;
        Teacher t1;
        t1.age = 12;
        system("pause");
    }
    
    
    3 .一些特性
    //类,可以同时声明多个同一级别
    class MyTeacher
    {
    private:
    public:
    protected:
    
    };
    
    //结构体
    struct  MySuperTeacher
    {
    private:
        char name[20];
        int age;
    public:
        void say()
        {
            cout << "说话" << endl;
        }
    };
    
    

    C++ C中&符号的区别:

        int a = 10;
        //C语言正常语法 &表示:取地址
        //C++ &表示:引用
        int &b = a; //b实际上就是另外一个别名
    
        //引用必须要初始化
        //int &c;
    
       //引用的本质是:指针常量
        int a = 10;
        int b = 20;
        //指针常量(这个指针所保存的地址不能改变)
        int * const p1 = &a;
        //p1 = &b; //不能改变
    
         //int &c = a;
        //c = b;   //不能改变
    
    //复杂类型的引用
    struct Teacher
    {
        char name[20];
        int age;
    };
    
    void myprint_0(Teacher p)
    {
        //p只是t1的拷贝,并不会影响t1
        cout << p.age << endl;
        p.age = 25;
    }
    
    void myprint_1(Teacher *p)
    {
        cout << p->age << endl;
        p->age = 35;
    }
    
    void myprint_2(Teacher &p)
    {
        cout << p.age << endl;
        p.age = 45;
    }
    
    void main()
    {
        Teacher t1;
        t1.age = 20;
        myprint_0(t1);
        cout << t1.age << endl;
    
        myprint_1(&t1);
    
        cout << t1.age << endl;
    
        myprint_2(t1);
    
        cout << t1.age << endl;
    
        system("pause");
    }
    

    相关文章

      网友评论

          本文标题:C++语言基础(01)

          本文链接:https://www.haomeiwen.com/subject/ucsmgxtx.html