cuốn sách gpt4 ai đã làm

c++ - 定义函数后 main 出错? "undefined reference to ' 序列::序列()'"

In lại Tác giả: Walker 123 更新时间:2023-11-28 06:02:54 29 4
mua khóa gpt4 Nike

我的代码在 main(序列测试;)的第一行出现错误,指出它是对 sequence::sequence() 的 undefined reference 。我无法更改 main 中的代码。有谁知道我该如何解决这个错误?

#include  // Provides toupper
#include // Provides cout and cin
#include // Provides EXIT_SUCCESS

sử dụng không gian tên std;

class sequence
{
công cộng:
// TYPEDEFS and MEMBER CONSTANTS
typedef double value_type;
typedef std::size_t size_type;
static const size_type CAPACITY = 30;
// NGƯỜI XÂY DỰNG
sequence( );
// MODIFICATION MEMBER FUNCTIONS
void start( );
void advance( );
void insert(const value_type& entry);
void attach(const value_type& entry);
void remove_current( );
// CONSTANT MEMBER FUNCTIONS
size_type size( ) const;
bool is_item( ) const;
value_type current( ) const;
riêng tư:
value_type data[CAPACITY];
size_type used;
size_type current_index;
};


// PROTOTYPES for functions used by this test program:
void print_menu( );
// Postcondition: A menu of choices for this program has been written to cout.

char get_user_command( );
// Postcondition: The user has been prompted to enter a one character command.
// The next character has been read (skipping blanks and newline characters),
// and this character has been returned.

void show_sequence(sequence display);
// Postcondition: The items on display have been printed to cout (one per line).

double get_number( );
// Postcondition: The user has been prompted to enter a real number. The
// number has been read, echoed to the screen, and returned by the function.

sequence::size_type sequence::size( ) const
{
return (used);
}

bool sequence::is_item( ) const
{
if (used == 0)
{
cout << "You have reached the end of the sequence" << endl;
return (1);
}

khác
return (0);
}

sequence::value_type sequence::current( ) const
{
if (is_item() == 0)
{
return (current_index);
}
return (0);
}


void sequence::start( )
{
current_index = data[0];

trở lại;
}

void sequence::advance( )
{
unsigned int i;

while (is_item() == 0)
{
for (i = 1, current_index = data[0]; used >= i ; i++ )
{
current_index = data[i];
}
}
trở lại;
}

void sequence::insert(const value_type& entry)
{
unsigned int i;
while (size( ) < CAPACITY)
{
for (i = 1, data[i] = current_index; used>= i ; i++)
{
data[i] = data[i+1];
}
current_index = entry;
}
trở lại;
}

void sequence::attach(const value_type& entry)
{
unsigned int i;
while (size( ) < CAPACITY)
{
for (i = 1, data[i] = current_index + 1; used>= i ; i++)
{
data[i] = data[i+1];
}
current_index = entry;
}
trở lại;
}

void sequence::remove_current( )
{
unsigned int i;
while (is_item() == 0)
{ int temp;
temp = current_index + 1;
--current_index;
current_index = temp;
for (i = 1, data[i] = current_index; used>= i ; i++)
{
data[i] = data[i-1];
}
}
trở lại;
}


int main( )
{
sequence test; // A sequence that we’ll perform tests on
char choice; // A command character entered by the user

cout << "I have initialized an empty sequence of real numbers." << endl;

LÀM
{
print_menu( );
choice = toupper(get_user_command( ));
switch (choice)
{
case '!': test.start( );
phá vỡ;
case '+': test.advance( );
phá vỡ;
case '?': if (test.is_item( ))
cout << "There is an item." << endl;
khác
cout << "There is no current item." << endl;
phá vỡ;
case 'C': if (test.is_item( ))
cout << "Current item is: " << test.current( ) << endl;
khác
cout << "There is no current item." << endl;
phá vỡ;
case 'P': show_sequence(test);
phá vỡ;
case 'S': cout << "Size is " << test.size( ) << '.' << endl;
phá vỡ;
case 'I': test.insert(get_number( ));
phá vỡ;
case 'A': test.attach(get_number( ));
phá vỡ;
case 'R': test.remove_current( );
cout << "The current item has been removed." << endl;
phá vỡ;
case 'Q': cout << "Ridicule is the best test of truth." << endl;
phá vỡ;
default: cout << choice << " is invalid." << endl;
}
}
while ((choice != 'Q'));

return EXIT_SUCCESS;
}

void print_menu( )
// Library facilities used: iostream.h
{
cout << endl; // Print blank line before the menu
cout << "The following choices are available: " << endl;
cout << " ! Activate the start( ) function" << endl;
cout << " + Activate the advance( ) function" << endl;
cout << " ? Print the result from the is_item( ) function" << endl;
cout << " C Print the result from the current( ) function" << endl;
cout << " P Print a copy of the entire sequence" << endl;
cout << " S Print the result from the size( ) function" << endl;
cout << " I Insert a new number with the insert(...) function" << endl;
cout << " A Attach a new number with the attach(...) function" << endl;
cout << " R Activate the remove_current( ) function" << endl;
cout << " Q Quit this test program" << endl;
}

char get_user_command( )
// Library facilities used: iostream
{
char command;

cout << "Enter choice: ";
cin >> command; // Input of characters skips blanks and newline character

return command;
}

void show_sequence(sequence display)
// Library facilities used: iostream
{
for (display.start( ); display.is_item( ); display.advance( ))
cout << display.current( ) << endl;
}

double get_number( )
// Library facilities used: iostream
{
double result;

cout << "Please enter a real number for the sequence: ";
cin >> result;
cout << result << " has been read." << endl;
trả về kết quả;
}

câu trả lời hay nhất

问题是您声明 sequence 的默认构造函数:

class sequence
{
...
// NGƯỜI XÂY DỰNG
sequence( );

但还没有定义它。要定义它,您需要编写如下代码:

sequence::sequence( )
{
...
}

或者,您可以删除声明,让编译器自动为您生成默认构造函数。 (只要您没有其他构造函数,并且编译器提供的默认行为适合您的目的,这就有效。)

关于c++ - 定义函数后 main 出错? "undefined reference to ' 序列::序列()'",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32930250/

29 4 0
Walker 123
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress