Сложно что-либо предложить, не зная, почему список shared_ptr
с A
объектов существует в первую очередь.
Взгляните на семантику владения интеллектуальных указателей. Может быть, вам помочь.
Некоторые другие вещи, которые можно улучшить:
1. Использование списков инициализаторов в ctor, например:
class A {
private:
int m_data;
public:
A(int value=0) : m_data (value) {}
// ....
2. int _tmain(int argc, _TCHAR* argv[])
не является стандартной подписью;
Использование
int main(int argc, char* argv[])
или просто:
int main()