대상 구성원을 포함하는 클래스는 어떻게 초기화합니까?
2402 단어 학습 노트
#include
#include"Banji.h"
using namespace std;
int main()
{
Banji b;
system("pause");
return 0;
}
Student.h
class Student
{
public:
Student();
~Student();
void setNum(int x);
int getNum();
private:
int m_iNum;
};
Banji.h
#include"Student.h"
class Banji
{
public:
Banji();
~Banji();
int setStu(int x);
int getStu();
private:
Student stu;
};
Student.cpp
#include"Student.h"
#include
using namespace std;
Student::Student()
{
cout<
Banji.cpp
#include"Banji.h"
#include
using namespace std;
Banji::Banji()
{
cout< int Banji::setStu(int x)
{stu.setNum(x);}
int Banji::getStu()
{return stu.getNum();}
모두가 운행하기에는 문제가 없다.
그리고 제가 지금 고칠게요.
만약 우리 Student라는 종류의 구조 함수에 매개 변수가 필요하다면?
변경된 코드는 다음과 같다
demo.cpp
#include
#include"Banji.h"
using namespace std;
int main()
{
Banji b(3);
system("pause");
return 0;
}
Student.h
class Student
{
public:
Student(int x);
~Student();
void setNum(int x);
int getNum();
private:
int m_iNum;
};
Banji.h
#include"Student.h"
class Banji
{
public:
Banji(int x);
~Banji();
int setStu(int x);
int getStu();
private:
Student stu;
};
Student.cpp
#include"Student.h"
#include
using namespace std;
Student::Student(int x)
{
m_iNum=x;
cout<
Banji.cpp
#include"Banji.h"
#include
using namespace std;
Banji::Banji(int x)
{
Stu(x);
cout<
너는 버그를 보고할 줄 알게 될 것이다
왜 그랬을까?
우리가 반지류를 만들 때
Stu, 객체 구성원을 작성한 다음 banji를 작성합니다.
그러나 우리가 만약 Banji의 구조 함수에서 Stu를 초기화한다면 늦을 것이다!
이럴 때 우리는 초기화 목록을 사용해야 한다!
왜냐하면 초기화 목록은 구조 함수의 함수체가 실행되기 전에!
Banji를 초기화하기 전에 Stu를 초기화할 수 있습니다!
개정:
banji.cpp에서
Banji::Banji(int x):stu(x){cout<}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
STL 학습노트(6) 함수 객체모방 함수는 모두pass-by-value이다 함수 대상은 값에 따라 전달되고 값에 따라 되돌아오기 때문에 함수 대상은 가능한 한 작아야 한다(대상 복사 비용이 크다) 함수 f와 대상 x, x 대상에서 f를 호출하면:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.