#include <iostream>
using namespace std;
class sample {
int i;
double d;
public:
sample(int I = 0, double D = 0): i(I), d(D) { cout << "normal-constructed" << endl;}
sample(const sample& rv):i(rv.i), d(rv.d) {cout << " copy-constructed " << endl;}
~sample() {}
sample& operator=(const sample& rv) {
i = rv.i;
d = rv.d;
cout << " operator= " << endl;
}
};
int main()
{
sample s1(1,2.3);
sample s2,s3 = s1;
s2 = s1;
return 0;
}
输出是:
/tmp/ccqFAk9s.o: In function `__static_initialization_and_destruction_0(int, int)':
operator=.cpp:(.text+0x123): undefined reference to `std::ios_base::Init::Init()'
operator=.cpp:(.text+0x128): undefined reference to `std::ios_base::Init::~Init()'
/tmp/ccqFAk9s.o: In function `sample::sample(int, double)':
operator=.cpp:(.text._ZN6sampleC1Eid[sample::sample(int, double)]+0x2e): undefined reference to `std::cout'
operator=.cpp:(.text._ZN6sampleC1Eid[sample::sample(int, double)]+0x33): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
operator=.cpp:(.text._ZN6sampleC1Eid[sample::sample(int, double)]+0x3b): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
operator=.cpp:(.text._ZN6sampleC1Eid[sample::sample(int, double)]+0x43): undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))'
/tmp/ccqFAk9s.o: In function `sample::sample(sample const&)':
operator=.cpp:(.text._ZN6sampleC1ERKS_[sample::sample(sample const&)]+0x27): undefined reference to `std::cout'
operator=.cpp:(.text._ZN6sampleC1ERKS_[sample::sample(sample const&)]+0x2c): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
operator=.cpp:(.text._ZN6sampleC1ERKS_[sample::sample(sample const&)]+0x34): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
operator=.cpp:(.text._ZN6sampleC1ERKS_[sample::sample(sample const&)]+0x3c): undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))'
/tmp/ccqFAk9s.o: In function `sample::operator=(sample const&)':
operator=.cpp:(.text._ZN6sampleaSERKS_[sample::operator=(sample const&)]+0x27): undefined reference to `std::cout'
operator=.cpp:(.text._ZN6sampleaSERKS_[sample::operator=(sample const&)]+0x2c): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
operator=.cpp:(.text._ZN6sampleaSERKS_[sample::operator=(sample const&)]+0x34): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
operator=.cpp:(.text._ZN6sampleaSERKS_[sample::operator=(sample const&)]+0x3c): undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))'
/tmp/ccqFAk9s.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld 返回 1
这个是什么情况呢?