码迷,mamicode.com
首页 > 编程语言 > 详细

C++ 常见的 Undefined symbols for architecture *

时间:2017-05-13 14:25:05      阅读:373      评论:0      收藏:0      [点我收藏+]

标签:声明   com   color   define   实现类   ble   virt   ++   first   

出现 

Undefined symbols for architecture x86_64:

的原因

1.函数申明了,却未被定义。

2.申明的虚函数未被实现。

NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.

3.使用template <class T> 实现类时。若是将函数声明写在.h文件,实现写在.cpp。则出现Undefined symbols for architecture x86_64。应将申明和实现都放在.h文件

template <class T>
class Heap {
    typedef typename vector<T>::iterator iterator;
private:
    vector<T> container;
    void swim(int i);
    void sink(int i);
};
template <class T>
void Heap<T>::swim(int i) {
    while (i > 1&&container[i]>container[i/2])
    {
        T temp = container[i];
        container[i] = container[i/2];
        container[i/2] = temp;
        i = i/2;
    }
}

 http://www.cnblogs.com/like1/p/6848669.html

C++ 常见的 Undefined symbols for architecture *

标签:声明   com   color   define   实现类   ble   virt   ++   first   

原文地址:http://www.cnblogs.com/like1/p/6848669.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!