» 上一篇:
之所以会摘录下面文章,除了下面的知识点自己没有掌握之外,还因为在编写代码时,出现了诸如下面的错误: undefined reference to `XXX::XXX()’
原因:如果在链接时找不到对应的o文件,则在创建一个类对象且链接时就会出现这个错误,本人是在Makefile中忘记加了,范了个低级错误!
//显式地禁止隐式生成的函数:声明它但是不要实现它 #include<iostream> using namespace std; //一个类有六个缺省的成员函数 class A { public: A( void ); //声明缺省构造函数 A( const A& another ); //声明拷贝构造函数 ~A( void ); //声明析构函数 A &operator = (const A& another );//声明赋值运算符 A *operator&( void ); //声明取址运算符 const A *operator & ( void ) const; //声明取址运算符[const版本] };
// 实现析构函数
A::~A( void ) { } int main() { //以上只声明缺省构造函数但是没有实现该函数,因此当用缺省构造函数创建一个对象时, //编译器提示出错信息:引用了未定义的缺省构造函数 //A obj; // [Linker error] undefined reference to `A::A()' system( "pause" ); return 0; } //本程序只实现析构函数,其他五个都是只声明不定义, //这样能确保:系统不会再产生已声明过的函数,但是又不能调用,因为没有定义。 //这就达到了:显式地禁止隐式生成的函数的目的。
» 文章出处:
reille博客—http://velep.com
, 如果没有特别声明,文章均为reille博客原创作品
» 郑重声明:
原创作品未经允许不得转载,如需转载请联系reille#qq.com(#换成@)
推荐阅读相关文章:
- 暂无相关文章
和楼主同样的问题。。。