C++静的メンバーと友元
3180 ワード
静的メンバー
静的変数の初期化(定義方法) static int getnum()/静的メンバー関数 静的メンバー関数は、静的メンバー変数 のみを操作できます.第1種 第2種(静的メンバー関数は静的メンバー変数のみを操作できる)(この使用を推奨)
まとめ静的データメンバーが比較的多く使用されている場所 静的メンバー関数は、非静的メンバー変数 にアクセスできません.
友元
友類友元は を伝えることができません奇妙なプログラム
ゆうげんかんすう
友元が必要な理由では、通常の関数がクラスの保護またはプライベートデータメンバーに直接アクセスする必要がある場合があります. が友元を必要とするもう1つの理由は、オペレータの再ロードを容易にするためである. 友元関数はメンバー関数ではなく、クラスの友達であるため、クラスのすべてのメンバーにアクセスできます. クラスの内部では、その関数のプロトタイプを宣言し、friendキーワードを加えるしかない.
友元の使用クラスに普通の関数を宣言し、キーワードfriendを付けると、クラスの友元となり、クラスのすべてのメンバーにアクセスできます. クラスのメンバー関数は、別のクラスの友元であってもよい.
静的変数の初期化(定義方法)
#include
using namespace std;
class Student
{
static int num;
public:
Student()
{
num++;
}
~Student()
{
num--;
}
int getnum()
{
return num;
}
};
int Student::num=0;
int main()
{
Student t1;
Student t2;
Student *t3=new Student;
cout<
#include
using namespace std;
class Student
{
static int num;
public:
Student()
{
num++;
}
~Student()
{
num--;
}
static int getnum()
{
return num;
}
};
int Student::num=0;
int main()
{
cout<
#include
using namespace std;
class Student
{
static int num;
int id;
public:
Student()
{
num++;
}
~Student()
{
num--;
}
int getnum()
{
int id=0;
return num;
}
};
int Student::num=0;
int main()
{
// cout<
#include
using namespace std;
class Student
{
static int num;
int id;
public:
Student()
{
num++;
}
~Student()
{
num--;
}
int getid()
{
id=0;
return id;
}
static int getnum()
{
return num;
}
};
int Student::num=0;// ,
int main()
{
// cout<
まとめ
友元
#include
using namespace std;
class Student
{
int m_id;
public:
Student(int id)
{
m_id=id;
}
friend void test(Student t);// ;
};
void test(Student t)
{
cout<
友類
#include
using namespace std;
class Student
{
int m_id;
public:
Student(int id)
{
m_id=id;
}
friend class A;
};
class A
{
public:
void test(Student t)
{
cout<
#include
using namespace std;
class Student
{
int m_id;
public:
Student(int id)
{
m_id=id;
}
friend class B;
friend class A;
};
class B
{
friend class A;
}
class A
{
public:
void test(Student t)
{
cout<
#include
using namespace std;
class Student;
class A
{
public:
void test(Student t);
};
class Student
{
int m_id;
public:
Student(int id)
{
m_id=id;
}
friend void A::test(Student t);
};
void A::test(Student t)
{
cout<
ゆうげんかんすう
友元が必要な理由
友元の使用