У меня есть класс, единственный конструктор которого принимает целое число, и я хотел бы использовать его в другом классе, не делая его указателем и используя new/delete.Объявление класса с помощью специального конструктора в другом классе
Возможно ли это?
Соответствующие части первого класса:
class A
{
private:
int size;
char *c;
public:
A(int i)
{
size = i;
c = new char[i];
}
~A() { delete[] c; }
}
И я хочу, чтобы использовать его в качестве примера класса 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);
}
}
вы скомпилированный код? что компилятор говорит? Вы пропустили ';' для класса после '}' – taocp
# 1 работает в C++ 11 и # 2 работает в любом месте. Просто никогда не используйте «новые», если у вас действительно нет веских оснований. – chris
@taocp: Я набрал эти теоретические классы, чтобы сузить точку зрения, о которой я просил, не вставляя 60-ти линейный класс, поэтому я удивлен, что я только получил; неправильно! – SVC