关于C++类对象被析构的问题
我定义了一个名为Node的类,用于记录每一组数据,又定义了一个名为Collection的类,用于组织每一组数据,其中使用ins()函数插入Node类对象。但是如果使用下面...
我定义了一个名为Node的类,用于记录每一组数据,又定义了一个名为Collection的类,用于组织每一组数据,其中使用ins()函数插入Node类对象。但是如果使用下面的代码,插入Node类对象之后马上就会被析构掉,有没有什么办法能让插入的数据一直保留直到手动删除呢?
/*使用Node.h文件定义Node类*/
class Node
{
private:
unsigned char data;
unsigned long value;
public:
Node(unsigned char data, unsigned long value)/*构造函数*/
{
this->data=data;
this->value=value;
}
}
/*Node.h文件结束*/
/*使用Collection.h文件定义Node类对象的集合*/
#include<vector>
#include"Node.h"
using std::vector;
class Collection
{
private:
vector<Node> v;
public:
void ins(unsigned char data, unsigned long value)/*尝试将新数据压入vector中*/
{
Node newNode(data,value);
v.push_back(newNode);
}
void show()
{
/*将v中的元素依次输出,此处省略代码*/
}
}
/*Collection.h文件结束*/
/*main.cpp文件开始*/
#include"Collection.h"
int main(void)
{
Collection c;
c.ins('a',1);
c.ins('b',2);
c.ins('c',3);
c.show();/*此处输出的是析构后的无效数据*/
return 0;
}
/*main.cpp文件结束*/ 展开
/*使用Node.h文件定义Node类*/
class Node
{
private:
unsigned char data;
unsigned long value;
public:
Node(unsigned char data, unsigned long value)/*构造函数*/
{
this->data=data;
this->value=value;
}
}
/*Node.h文件结束*/
/*使用Collection.h文件定义Node类对象的集合*/
#include<vector>
#include"Node.h"
using std::vector;
class Collection
{
private:
vector<Node> v;
public:
void ins(unsigned char data, unsigned long value)/*尝试将新数据压入vector中*/
{
Node newNode(data,value);
v.push_back(newNode);
}
void show()
{
/*将v中的元素依次输出,此处省略代码*/
}
}
/*Collection.h文件结束*/
/*main.cpp文件开始*/
#include"Collection.h"
int main(void)
{
Collection c;
c.ins('a',1);
c.ins('b',2);
c.ins('c',3);
c.show();/*此处输出的是析构后的无效数据*/
return 0;
}
/*main.cpp文件结束*/ 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询