私はビデオや古い投稿を見てみましたが、コピーコンストラクタのコンセプトを理解することはまだ非常に難しいです。誰かが私のためにそれをクリアするだろうか?私のクラスは、この部分を実際にカバーしていませんでした。私の教授は主にコンストラクタとデストラクタに焦点を合わせました。リンクリストのコピーコンストラクタを作成して実行する方法は?
メインCPP
#include <iostream>
#include "Header.h"
using namespace std;
int main()
{
node access;
access.getData();
access.outData();
system("pause");
return 0;
}
ヘッダーファイル
#include <iostream>
using namespace std;
class node
{
public:
node(); // Had to create my own default constructor because of my copy constructor.
node(const node &n); // This is a copy constructor.
~node();
void getData();
void outData();
private:
int num;
int lCount = 0; // Counts the number of nodes, increments after each user input.
int *ptr; // Where the linked list will be copied into
node *next;
node *first;
node *temp;
node *point;
};
node::node()
{
num = 0;
}
node::node(const node &n)
{
temp = first;
ptr = new node;
for (int i = 0; i < lCount; i++)
{
ptr[i] = temp->num;
temp = temp->next;
}
}
node::~node() // Deletes the linked list.
{
while (first != NULL)
{
node *delP = first; // Creates a pointer delP pointing to the first node.
first = first->next; // "Removes first node from the list and declares new first.
delete delP; // Deletes the node that was just removed.
}
cout << "List deleted" << endl;
}
void node::getData() // Simple function that creates a linked list with user input.
{
int input = 0;
point = new node;
first = point;
temp = point;
while (input != -1)
{
cout << "Enter any integer, -1 to end." << endl;
cin >> input;
if (input == -1)
{
point->next = NULL;
break;
}
else
{
lCount++;
point->num = input;
temp = new node;
point->next = temp;
point = temp;
}
}
}
void node::outData()
{
temp = first;
cout << "Original" << endl;
while (temp->next != NULL)
{
cout << temp->num << endl;
temp = temp->next;
}
cout << "Copied" << endl;
for (int i = 0; i < lCount; i++)
{
cout << ptr[i] << endl;
}
}
はこの小さなスニペットは、私は特にとのトラブルを抱えていますものです:
node::node(const node &n)
{
temp = first;
ptr = new node;
for (int i = 0; i < lCount; i++)
{
ptr[i] = temp->num;
temp = temp->next;
}
}
https://www.tutorialspoint.com/cplusplus/cpp_copy_constructor.htm –
可能[リンクリストのコピーコンストラクタを作成する]の複製(http://stackoverflow.com/questions/7811893/creating-a-copy-construct)リンクリストのために) –
@JasonC私はそれを既に見てきました。私はちょうど他人のコードを見て理解していない。私は自分のコードを見て、それを私のためにクリアすることを望んでいます。 –