Home > Back-end >  The use of solving static member variables
The use of solving static member variables

Time:10-12

 class CA 
{
Public:
CA (int I) {}
};

The class CB
{
Public:
CB (int I) {}

The static CA co [10];
};

To solve how to initialize the co and use.

CodePudding user response:

Co to make a reference to sex in the class, but also in the file domain for defining how
Co in the object's constructor member variable initialization sequence of initialization

CodePudding user response:

//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
# include "stdafx. H"
#include
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
using namespace std;
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
The class CStudent
{
Public:
CStudent (int nID) {m_nID=nID; M_nCount + +; }
CStudent (CStudent & amp; S);
Int GetID () {return m_nID; }
Void GetCount () {cout<" The number of students: "& lt; Private:
Int m_nID;
Static int m_nCount;
};
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
CStudent: : CStudent (CStudent & amp; S)
{
M_nID=s.m _nID;
M_nCount + +;
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Int CStudent: : m_nCount=0;
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Int _tmain (int arg c, _TCHAR * argv [])
{
CStudent A (6);
cout<" Student A, "& lt; Atul gawande etCount ();
CStudent B (A);
cout<" Student B, "& lt; B.G etCount ();

system("pause");
return 0;
}
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

CodePudding user response:

Static members can be used directly, without having to create the class instance
CB - & gt; Co [0]=CA ();
CB - & gt; Co [1]=CA ();
.

All instances of the Shared use of static members of
CB CB.
Cb - & gt; Co [0]==CB - & gt; Co [0].

CodePudding user response:

Give you a simple example:
 
#include
#include

Class A {
Public:
Static int a_value;
Void init (void) {
Printf (" the class a to the initialized! \n");
};
Void show (void) {
Printf (" value a_value is % d. \ n ", a_value);
};
};

Int A: : a_value=https://bbs.csdn.net/topics/0;

Int main (int arg c, char * argv [])
{
A * A=new A;
A - & gt; init();
A - & gt; Show ();
A - & gt; A_value=https://bbs.csdn.net/topics/1;
A - & gt; Show ();
Printf (" Welcome to c + + world. \ n ");
The exit (0);
}

CodePudding user response:

Sorry, there is no clear, mainly I ask is not a static member variable how to use, I want to ask is such a static variable, CA defines a belt and a constructor, can define a static member array,
Contains a constructor with the cords of class how to define an array of objects?

CodePudding user response:

As you initialize the int CStudent: : m_nCount=0; , I want to how to initialize the co

CodePudding user response:

Your question is very good, in fact, in the end, the parameters used in the class itself, using the class itself rather than a pointer as the argument passing involves class copy constructor is used, in order to simplify the complexity of the program, is not recommended, the interest of time, can't learn these knowledge together with the original poster, I have changed the program of the building Lord are simple, the original poster can continue to study:
 
#include
#include

Struct s {
int i;
int j;
};

The class CA
{
Public:
int a;
Int b;
Struct s ss;
CA (void) : (1), b (2) {
Printf (" CA constructed. \ n ");
A: % d, b: printf (" % d. \ n ", a, b);
}
CA (int I) {
Printf (" CA (int) invoked: % d. \ n ", I);
A: % d, b: printf (" % d. \ n ", a, b);
}
CA (int, int j) {
Printf (" CA (int, int) invoked: % d, % d. \ n ", I, j);
A: % d, b: printf (" % d. \ n ", a, b);
}
CA (struct s v) {
Printf (" CA (struct vs) invoked. \ n ");
A: % d, b: printf (" % d. \ n ", a, b);
}
CA (double I) {
Printf (" CA (double) invoked: % f \ n ", I);
A: % d, b: printf (" % d. \ n ", a, b);
}
};

The class CB
{
Public:
CB () {
Printf (" CB constructed. \ n ");
}
CB (int I) {}

The static CA co [10];
};

Const struct s cs={
5, 6
};

CA CB: : co [10]={
99, 11.22, cs,
};

Int main (int arg c, char * argv [])
{
CB * CB=new CB.
Printf (" sizeof CB is % lu. \ n ", sizeof (CB));

The exit (0);
}
  • Related