项目中遇到的几个问题_C/C++_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > C/C++ > 项目中遇到的几个问题

项目中遇到的几个问题

 2013/7/25 23:42:41  gqlu  程序员俱乐部  我要评论(0)
  • 摘要:在编译遗留代码的时候突然冒出来这么一个错误isnotadirectbaseof,着实吓了一跳,这么遇到这么奇怪的错误呢。其实仔细一看,也不是太出乎意料,我将代码缩减了一下,基本思路如下:classA{public:A(int){}A(constchar*):A(1){}};intmain(intac,char**av){Aa("hello");}如果对C++熟悉的人一眼就看出来了错在哪里,在constructor中不能调用其他的constructor。对了一半,对于C++11标准出来之前
  • 标签:问题 项目
在编译遗留代码的时候突然冒出来这么一个错误 is not a direct base of,着实吓了一跳,这么遇到这么奇怪的错误呢。其实仔细一看,也不是太出乎意料,我将代码缩减了一下,基本思路如下:

class="c++" name="code">
class A {
public:
    A(int) {}
    A(const char*) : A(1) {}
};

int main(int ac, char **av)
{
    A a("hello");
}


如果对 C++ 熟悉的人一眼就看出来了错在哪里,在 constructor 中不能调用其他的 constructor。

对了一半,对于 C++11 标准出来之前,确实是这样的,但是新的标准允许码农这么使用,当然了,你需要在编译器的参数上设置好是新的标准即可(-std=c++0x ,保证你的 GCC 版本是大于 4.7才可以这么用 delegated constructor)。

说到 C++ 的新标准,其实还是有不少新的特性可以使用在日常的项目,可以减小一些代码输入,使得一些代码更加精炼。

另外还遇到的一个问题是 cmake 总是默认帮我找到 gcc 这个编译器,但是在这个项目里面我可能需要使用 clang,那么可以通过下面的方式来调用:

cmake -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang .

嗯,我先在这里记下了。
上一篇: 苹果高增长时代宣告结束 寄予2014年新产品上市 下一篇: 没有下一篇了!
发表评论
用户名: 匿名