좋아요, 그래서 이것은 내 테스트에서 수행 한 작업입니다. 각 사용자 개체가 고유 한 ID를 갖도록 const int userID를 사용하여 User 클래스를 만들어야합니다.생성자에서 const 필드를 초기화하지만 먼저 하나의 매개 변수를 확인하십시오.
두 개의 매개 변수 key, name을 사용하여 생성자에 오버로드를 요청 받았습니다. 키가 0이면 사용자는 고유 한 ID를 가지며, 그렇지 않으면 사용자는 userID = -1을 얻게됩니다. }
class User{
private:
static int nbUsers;
const int userID;
char* name;
public:
User(int key, char* name) :userID(nbUsers++){
if (name != NULL){
this->name = new char[strlen(name) + 1];
strcpy(this->name);
}
}
;
내가 이런 짓을했습니다
먼저 키 매개 변수가 0인지 확인한 다음 const 사용자 ID를 초기화하는 방법을 모르겠습니다. 의견이 있으십니까? 이 생성자 초기화 목록에서 직접 호출 할 수 있도록
Upvoted을,하지만 난'키를 선호하는 것? nbUsers ++ : -1'입니다. 또한'static std :: atomic ubUsers'를 사용하는 것에 대해 생각해보십시오. –
Bathsheba
이제 알겠습니다. 많은 감사합니다! – Arkenn
'initDependingOnKey'를'User' 클래스의 정적 함수로 사용하는 것이 더 좋을 것입니다! – jpo38