• C++ static 数据成员和构造函数


    #include<iostream>
    using namespace std;
    class Temp
    {
        int x;
        static int y;
        //y = 4;
    public:
        
        Temp(int m = 0,int n = 90 )
        {
            x = m;
            y = n;               //完全可以这样写,但是你想一想,static定义的目的是什么?为的就是所有对象都可以使用
    //而实际上要是这么定义的话,会把y的值设置为 90 这会改变定义 static类型 y 的初衷,完全失去了意义
    } /* Temp() { x = 6; y = 6; //一个类里面默认只能有一个默认构造函数 } */ void display() { cout<<x<<" "<<y<<endl; } }; int Temp::y = 30; int main() { Temp t; t.display(); //没有return 值 return 0; }

    #include<iostream>
    using namespace std;
    class Time
    {
        int h;                             //C++默认定义数据成员是私有的
        int m;
        int s;
    public:
        Time(int j=0,int k=0,int l=0):h(j),m(k),s(l)         //默认值一定要放在右边 !!!!
        {                                                  //这个不是默认构造函数
    //所以说这个类中没有默认构造函数,但是一个类中必须有一个默认构造函数 } }
    class Temp //C++默认继承方式是私有的 如果需要其他继承类型 则 class 子类: public 父类 { //这根本就不是继承,就是内嵌调用 Time temp; //对于创建内嵌对象,如果没有显示调用构造函数,会默认调用time的构造函数 const int x; //C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的 C++ const 和 static 有什么区别? int y; public: Temp(int m = 0,int n = 0) :x(m) //!!!!!这才是正确的赋值方法 { //x = m; // 因为X是const类型,所以不能赋值 y = n; } void display() { cout<<x<<" "<<y<<endl; } }; int main() { Temp t; t.display(); return 0; }
  • 相关阅读:
    WCF客户端获取服务端异常[自定义异常]
    关于VS2013 Browser Link 新功能
    MVC 单元测试xUnit初探
    ASP.NET MVC4中加入Log4Net日志记录功能
    简洁的MVC思想框架——Nancy(Session的使用)
    iOS开发之快速排序算法
    iOS开发之内购的完整流程
    ios面试数据结构与算法
    iOS开发之读取info.plist配置信息
    iOS开发之ARC与非ARC的设置
  • 原文地址:https://www.cnblogs.com/zhangqianxi/p/14088970.html
Copyright © 2020-2023  润新知