我刚刚发现以下内容无效.
//Header File
class test
{
const static char array[] = { '1', '2', '3' };
};
Run Code Online (Sandbox Code Playgroud)
初始化这个的最佳位置在哪里?
我有一个基类,如下所示.
template<typename T>
class Base
{
public:
Base(int someValue);
virtual T someFunc() =0;
};
template<typename T>
Base<T>::Base(int someValue)
{}
Run Code Online (Sandbox Code Playgroud)
然后是以下内容.
#include "base.hpp"
class Foo
: public Base<Foo>
{
public:
Foo(int someValue);
virtual Foo someFunc();
};
Foo::Foo(int someValue)
: Base(someValue)
{}
Run Code Online (Sandbox Code Playgroud)
我从gcc 4.2.1得到以下错误.
error: class ‘Foo’ does not have any field named ‘Base’
Run Code Online (Sandbox Code Playgroud)
我应该提一下,在运行gcc 4.6.2的Fedora盒子上编译好.在我的os x Lion机器上编译时会发生此错误.
在此先感谢您的帮助.
编辑
问题似乎是我在调用构造函数时没有在Foo类中指出模板的类型.以下修复了os x中的错误.
: Base<Foo>(someValue, parent)
Run Code Online (Sandbox Code Playgroud)
编辑
是的,这确实看起来像一个bug.我之前提到的修复了os x下的错误,并且代码在fedora中使用该修复程序编译得很好.将去看看os x中是否有gcc更新.
我有以下脚本
cat $1 | while read line
do
line=`echo $line | tr "[:lower:]" "[:upper:]"`
if [ "`echo $line | cut -f1 -d:`" = "foo" ] && \
[ "`echo $line | cut -f2 -d:`" = "bar" ]; then
echo 'exsist'
exit 1;
fi
done
Run Code Online (Sandbox Code Playgroud)
一切都可以回应,然后当脚本命中退出时,它不会继续前进.有任何想法吗.
谢谢
我试图动态地将2d数组分配给构造函数初始化中的指针.
FooBar::FooBar()
: _array( new int[10][10] )
{ }
int **_array;
Run Code Online (Sandbox Code Playgroud)
但这不起作用.我知道多维数组的分配有点不同.是否有人能够通过解释详细说明这一点?
提前致谢.
我已经编写了以下代码,但是当我更改它时,第二个代码段将无效.
int main( int argc, char *argv[] )
{
if( argv[ 1 ] == "-i" ) //This is what does not work
//Do Something
}
Run Code Online (Sandbox Code Playgroud)
但是如果我这样编写代码就行了.
int main( int argc, char *argv[] )
{
string opti = "-i";
if( argv[ 1 ] == opti ) //This is what does work
//Do Something
}
Run Code Online (Sandbox Code Playgroud)
是因为字符串类将==作为重载成员,因此可以执行此操作吗?
提前致谢.
我试图在 Qt 中绘制一个椭圆,边缘的边框在某些地方变薄了。

这是代码:
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true);
painter.setPen(QPen(Qt::black, 3));
painter.drawEllipse(event->rect());
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?提前致谢。
我正在尝试执行以下操作.
foo="foo:foo1"
cc= `$foo | cut -f2 -d:`
Run Code Online (Sandbox Code Playgroud)
我理解为什么这不起作用,但我不知道这样做.
提前致谢.