나는 다음과 같은C++ 데이터 멤버. 목표 : 생성자에서 초기화 한 다음 혼자두면 const가 여기에서 작동합니까?
struct dweDMPair {
const dweller *occu;
const double sqDM;
float prob;
dweDMPair(dweller *inOccu, double sqdm) : occu(inOccu), sqDM(sqdm) {} };
나는 이러한 개체에 대한 포인터의 배열을 반환하고 싶지만 그들이 실수로 클라이언트에 의해 삭제되어서는 안된다는 욕망이있다. 아니면, 잘못, 어쩌면이 디자인 반복을 시도해보십시오.
내 질문은 (const 접두어로 설명한 것처럼) 멤버가 생성자에서만 할당된다는 것을 (매우 간결하고 깔끔하게) 지정하는 방법이 있습니까?
개인/공개 및 인터페이스/방법이 이것을 분류 할 수 있지만 유머는 어느 정도인지, const
키워드가 악용 될 수 있다는 것을 알고 있습니까?
_ 편집 _
나와 즈, 내 목표는 생성자에서 한 번 만 3 명 데이터 멤버의 2를 초기화하는 것입니다. 그런 다음이 인스턴스를 const dweDMPair * ptrToVal로 내 보내면 클라이언트는 delete 인스턴스를 호출 할 수 없으므로 const 인스턴스에 대한 포인터에서 작동하지 않으므로 삭제할 수 있습니까? 그러면 고객은 세 번째 멤버 인 prob
에 대해 고유 한 가치를 부여합니다. 예, 기능이 보호 기능을 수행하는 것을 알고 있지만 더 빨리 사용하고 싶습니다.
멤버는 정적이지만 인스턴스 멤버 일 수 없습니다. 혹시 궁금한 점이 있으시면 ..
질문이 명확하지 않습니다. 더 많은 단어를 사용하여 설명해야합니다. – Nawaz
"빨리 원합니다"- 더 빨리 원합니까? 나는 아마 당신이 인라인 함수를 사용한다면 아마 어떤 것에도 있지 않을 속도 문제에 대해 걱정하고 있다고 생각한다. –
@ 마이클, 내 아바타를 바꾸어야합니다. 나는 게임을 쓰고 있으므로 항상 속도 문제가있을 것입니다. 창의력 수준에 이르면 이미지 문제가있는 아바타를 업데이트 할 것입니다. – John