zoukankan      html  css  js  c++  java
  • 常对象指针

    // 常量.cpp : 定义控制台应用程序的入口点。
    //

    #include "stdafx.h"
    #include <iostream>
    using namespace std;
    class MyClass
    {
    private:
    int m_iX;
    static int m_iY;
    public:
    MyClass(){cout<<"1";}
    ~MyClass(){cout<<"2";}
    void setX(int iX){m_iX=iX;}
    void setY(int iY){m_iY=iY;}
    int getX(){return m_iX;}
    int getY(){return m_iY;}
    //static int getX2(){return m_iX;} // 错误
    static int getY2(){return m_iY;}
    };
    int MyClass::m_iY = 0;

    int _tmain(int argc, _TCHAR* argv[])
    {
    const int icX = 0;
    //icX = 2; // error C3892: “icX”: 不能给常量赋值

    int const icY = 0;
    //icY = 2; // error C3892: “icY”: 不能给常量赋值

    //int & irX = icX; // error C2440: “初始化”: 无法从“const int”转换为“int &”

    //int & irY = icY; // error C2440: “初始化”: 无法从“const int”转换为“int &”

    //int * ipX = &icX; // error C2440: “初始化”: 无法从“const int *”转换为“int *”

    //int * ipY = &icY; // error C2440: “初始化”: 无法从“const int *”转换为“int *”
    {
    const MyClass c1; // 或者 MyClass const c1;
    //int iX = c1.getX(); // error C2662: “MyClass::getX”: 不能将“this”指针从“const MyClass”转换为“MyClass &”
    //int iY = c1.getY(); // error C2662: “MyClass::getY”: 不能将“this”指针从“const MyClass”转换为“MyClass &”
    int iY = c1.getY2(); // 正确

    MyClass c2,c3;
    {
    const MyClass * pc2 = &c2;
    pc2 = &c3; // 正确
    //pc2->getX(); // error C2662: “MyClass::getX”: 不能将“this”指针从“const MyClass”转换为“MyClass &”
    }
    {
    MyClass const * pc2 = &c2;
    pc2 = &c3; // 正确
    //pc2->getX(); // error C2662: “MyClass::getX”: 不能将“this”指针从“const MyClass”转换为“MyClass &”
    }
    {
    MyClass * const pc2 = &c2;
    //pc2 = &c3; // error C3892: “pc2”: 不能给常量赋值
    pc2->getX(); // 正确
    pc2->setX(2); // 正确
    }
    }
    // 注:作为函数参数使用 MyClass * const 表示指针的值不可变,而不是对象的值不可变。
    // 其它定义如:const MyClass * 或 MyClass const * 的意义不大。
    return 0;
    }


     

  • 相关阅读:
    29 友盟大数据--flume源码查看分析ExecSource--UmengExecSource 改造exec源 :监控目录、收集新文件---增加个守护线程不断监控目录
    28 友盟大数据--flume源码查看分析- ExecSource-参照主机名拦截器HostInterceptor ---写限速拦截器
    Demo
    分布式爬虫-Kafka监控
    SQL优化
    MySQL
    Spring
    Mybatis
    类加载器
    数据仓库分层
  • 原文地址:https://www.cnblogs.com/plus/p/2409009.html
Copyright © 2011-2022 走看看