zoukankan      html  css  js  c++  java
  • 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; }
  • 相关阅读:
    1093 Count PAT's(25 分)
    1089 Insert or Merge(25 分)
    1088 Rational Arithmetic(20 分)
    1081 Rational Sum(20 分)
    1069 The Black Hole of Numbers(20 分)
    1059 Prime Factors(25 分)
    1050 String Subtraction (20)
    根据生日计算员工年龄
    动态获取当前日期和时间
    对计数结果进行4舍5入
  • 原文地址:https://www.cnblogs.com/zhangqianxi/p/14088970.html
Copyright © 2011-2022 走看看