精华内容
下载资源
问答
  • C++中(const)常数据成员初始化

    千次阅读 2013-11-03 01:42:04
    在类中使用const关键字可以修饰数据成员和成员函数或对象,分别称为数据成员、常成员函数和常对象。 1常量成员 常量成员包括常数据成员、...例子:常数据成员初始化 #include /* run this program using the c

    在类中使用const关键字可以修饰数据成员和成员函数或对象,分别称为数据成员、常成员函数和常对象。

    1常量成员

    常量成员包括常数据成员、静态常数成员和常引用。常数据成员和常引用的初始化只能通过构造函数的成员初始化列表显示进行,而静态常数据成员仍保留静态成员的特征,在类外初始化。

    例子:常数据成员初始化

    #include <iostream>
    
    /* run this program using the console pauser or add your own getch, system("pause") or input loop */
    using namespace std;
    class Myclass
    {
    	private:
    		int x;							//申明一个成员数据 
    		const int a;				   //申明一个常成员数据 
    		static const int b;			   //申明一个静态的常成员数据 
    		const int &r;				   //声明一个常引用 
    	public:
    		Myclass(int,int);
    		void Print()
    		{
    			cout<<x<<",\t"<<a<<",\t"<<b<<"\t"<<r<<endl;
    		}
    		void Display(const double &r){
    			cout<<r<<endl;
    		}
    };
    
    const int Myclass::b = 15;						//静态数据成员必须在类外初始化 
    Myclass::Myclass(int i,int j):x(i),a(j),r(x){}	//成员列表初始化 
    
    int main(int argc, char** argv) {
    	Myclass m1(10,20),m2(30,40);
    	m1.Print();
    	m2.Print();
    	m2.Display(3.1415926);
    	return 0;
    }


    展开全文
  • //静态常数据成员,可以在类里面初始化。 **//唯一能在类中初始化的成员只有一种,那就是静态常量成员** const int a; //要通过初始化列表赋值 [1]一般数据成员可以在构造函数中初始化(构造初始化列表初始化和...
    static int a;	//静态成员变量在类外说明和初始化
    static const int a;	//静态常数据成员,可以在类里面初始化。
    	**//唯一能在类中初始化的成员只有一种,那就是静态常量成员**
    const int a; //要通过初始化列表赋值
    

    [1]一般数据成员可以在构造函数中初始化(构造初始化列表初始化和构造函数体内赋值初始化)

    [2]const数据成员必须在构造函数的初始化列表中初始化(道理很简单,const成员第一次数据初始化就是发生在类构造数据初始化时,一旦过了此时,就会出现问题)

    [3]static要在类的定义外面初始化

    [4]数组成员是不能再初始化列表里初始化的,不能给数组指定明显的初始化。

    1.在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。

    2.c++规定const静态类成员可以直接初始化,其他非const的静态类成员需要在类外初始化,且不能使用static关键字。我们一般选择在类的实现文件中实现它(定义(为其分配内存),初始化)。

    展开全文
  • #include "stdafx.h" #include<iostream> using namespace std; class Term { public: const int x; Term( int c);... //错误,不能采用在构造函数中对常数据成员赋初值的方法进行初始化 } ...

    #include "stdafx.h"

    #include<iostream>

    using namespace std;

    class Term

    {

    public:

    const int x;

                    Term( int c);

    };

    /*

    Term::Term(int c)

    {

    x = c;   //错误,不能采用在构造函数中对常数据成员赋初值的方法进行初始化

    }

    */

    Term::Term(int c) :x(c){}//正确 ,用初始化列表

    int main()

    {

    return 0;

    }

    转载于:https://www.cnblogs.com/summercloud/p/5541504.html

    展开全文
  • 常数据成员初始化

    千次阅读 2012-07-24 16:01:45
    #include using namespace std; class Date{ public: Date(int y,int m,int d);...Date::Date(int y,int m,int d):year(y),... //是错的,常数据成员初始化后不能对其进行修改 //date.showDate(); return 0;
    #include <iostream>
    using namespace std;
    class Date{
    public:
    	Date(int y,int m,int d);
    	void showDate();
    	void setDate(int y,int m,int d);
    private:
    	const int year;
    	const int month;
    	const int day;
     
    };
    Date::Date(int y,int m,int d):year(y),month(m),day(d)  //注意:常数据成员和指针数据成员只能用列表进行初始化。
    {}
    /*void Date::setDate(int y,int m,int d) //试图对常数据成员进行修改
    {
    	year=y;
    	month=m;
    	day=d;
    }*/
    void Date::showDate()
    {
    	cout<<year<<"."<<month<<"."<<day<<endl;
    }
    int main()
    {
    	Date date(2012,11,16);
    	date.showDate();
        //date.setDate(2013,2,25);  //是错的,常数据成员初始化后不能对其进行修改
    	//date.showDate();
    	return 0;

    展开全文
  • 类的常数据成员(由const修饰)必须在构造函数的初始化列表里被初始化,不能在构造函数的函数体中被赋值; 又因为构造函数可以在类内或类外实现,所以表面上看,常数据成员可在类内初始化,也可在类外初始化。如: ...
  • C++类中的数据成员初始化问题

    千次阅读 2019-06-27 11:38:22
    首先我们先来看一个简单的类: class Test{ public: Test(); private: int a;...类的数据成员的属性大概包括:普通成员变量,引用成员变量,成员变量,静态成员变量,静态成员变量。 普...
  • 静态常数据成员的定义和初始化在类外进行 //类内 private : static const int b ; //类外 const int 类名 :: b = 10 ; 如果静态常数据成员是整型或枚举型,可以直接在类定义中指定常量值。 ...
  • 1、static定义的静态变量不属于某个具体类对象,它是属于类的的,只能在类的内部声明,在类... 【const数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的。因为类可以创建多个对象,不同的对象其con...
  • 数据成员必须在构造函数初始化列表中初始化: 没有默认构造函数的内嵌对象引用类型的数据成员常数据成员
  • 类中常数据成员初始化 1.只能通过构造函数的参数初始化常成员数据, 2.成员函数只能引用类中的数据成员,但是不能修改它。
  • 常数据成员必须使用初始化列表初始化初始化,并且不能被更新 常数据成员必须初始化 PS:类的数据成员使用初始化列表进行的初始化 才叫初始化,使用构造函数内部的语句初始化叫赋值 常对象 常对象可以调用常...
  • 利用const可以修饰类的成员。当用const修饰数据成员时,该数据成员为常数据成员。...常数据成员一旦初始化后,其值就不能被改变。   2. 常成员函数  const关键字定义的函数为常成员函数,定义如下:dou
  • C++类的常数据成员和常成员函数

    千次阅读 2019-03-11 11:01:07
    一、常数据成员 1、定义 用const修饰的数据成员 const int hour;//定义const为常数据成员 ...Time ::Time (int h):hour(h){}//通过参数初始化表对常数据成员进行初始化 3、访问规则 普通成员函数...
  • 常数据成员必须使用初始化列表初始化初始化,并且不能被更新 常数据成员必须初始化 PS:类的数据成员使用初始化列表进行的初始化 才叫初始化,使用构造函数内部的语句初始化叫赋值 常对象 常对象可以调用常...
  • 【C++】 常对象、常数据成员、常成员函数总结

    千次阅读 多人点赞 2019-03-24 15:07:25
     ◆ 常数据成员不能在声明时赋初始值(普通数据成员也是),常数据成员必须在构造函数初始化列表进行初始化;普通数据成员在初始化列表和函数体中初始化均可。  ◆ PS:类的成员对象若要传入参数初始化,则必须在...
  • 常数据成员 引言:类存在的目的之一就是为了实现封装性,但是实际上经常使用公有函数接口去修改其数据成员,为了保证类中可以有一些数据成员绝对不会被修改,所以创造了常数据成员 特点: 1.在定义时要在头部加const...
  • 刚开始学习C++的类和对象的部分,对类中的...(1)类中的常数据成员只能通过构造函数的参数初始化表进行初始化。 (2)常数据成员是实例化对象的一部分,可以用this指针访问。 代码如下:#include<iostream>using n
  • 4、常数据成员,只能通过初始化列表来获得初值。 什么时候用常对象? 1、函数返回值,2、函数形参(常引用) 常成员函数 1、常成员函数,不能修改(更新)对象数据成员的值。 2、常成员函数,不能调用该类中没有用...
  • #include using namespace std; class A { public: A(int i); void Print();...A::A(int i):a(i) //通过初始化列表初始化常数据成员a {} void A::Print() { cout<<a<<","<<b<<
  • 类的常成员分为常数据成员和常成员函数。“常”代表“只读”,也就是说一旦确立,一般情况下不会被改变。 常数据成员 常数据成员是只读变量,只能读取,不能修改。对于每个对象,常数据成员都是不可变的,但不同对象...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 460
精华内容 184
关键字:

常数据成员初始化