유일한 생성자가 정수를 허용하는 클래스가 있습니다. 포인터를 만들고 new/delete를 사용하지 않고 다른 클래스에서 사용하고 싶습니다.다른 클래스의 사용자 정의 생성자로 클래스 선언하기
이것도 가능합니까? 일류의
요부 :
class A
{
private:
int size;
char *c;
public:
A(int i)
{
size = i;
c = new char[i];
}
~A() { delete[] c; }
}
다음과 같이 I는 예시적인 클래스 B에서 사용하려는 : ()
를 사용하여 오브젝트의
class B
{
private:
A a(7); // Declaration attempt #1
A b; //Declaration attempt #2
A *c; //This is what I'll do if I have no other choice.
public:
B()
{
b = A(7); //Declaration attempt #2
c = new A(7);
}
}
이 코드를 컴파일 : C에서
(11)는 균일 한 초기화를 사용할 수 있습니다 + +? 컴파일러는 뭐라고 말합니까? 당신이 놓친';'후에'}' – taocp
# 1은 C++ 11과 # 2에서 작동합니다. 정말로 정말로 좋은 이유가 없다면'new'를 사용하지 마십시오. – chris
@taocp : 나는이 이론 수업을 타이프하여 60 선반을 붙여 넣지 않고 묻는 부분을 좁히기 때문에 나는 단지 놀랐다. 잘못된! – SVC