64,686
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
class Base
{
public:
Base() {}
virtual ~Base() {}
};
class Derived : public Base
{
public:
Derived() : i_(10) {}
virtual ~Derived() {}
private:
int i_;
};
int main()
{
Base *p = new Derived[2];
delete[] p;
std::cout << "endle" << std::endl;
return 0;
}
int main()
{
int count = 2;
#if 0
Base* p = new Derived[count];
cout<<typeid(p).name()<<endl<<typeid((Derived*)((unsigned int)(void*)p + sizeof(Derived))).name()<<endl;
delete[] p;
#else
Base**p = new Base*[count];
for(int i = 0 ; i < count ; ++ i)
p[i] = new Derived;
for(int i = 0 ; i < count ; ++ i)
delete p[i];
delete[] p;
#endif
std::cout << "endle" << std::endl;
return 0;
}
#include <iostream>
class Base
{
public:
int x;
Base() : x(33) {}
virtual ~Base(){}
};
class Derived : public Base
{
public:
Derived() : i_(10) {}
virtual ~Derived() {}
private:
int i_;
};
int main()
{
Derived* t = new Derived[2];
Base *p = t;
for (int i = 0; i < 2; ++i)
{
std::cout << p[i].x << std::endl;
}
delete[] p;
return 0;
}
int main()
{
Base *p = new Derived[20];
for(Base *pa =p;p<pa + 20;p++)
p->print();
delete[] p;
std::cout << "endle" << std::endl;
return 0;
}