小编The*_* do的帖子

在Qt [C++]中将布局添加到另一个布局

谁能告诉我为什么我会收到错误以及如何修复它?

        QGridLayout* mainLayout = new QGridLayout;
        QGridLayout *leftLayout = new QGridLayout;
        QGridLayout *rightLayout = new QGridLayout;
        mainLayout->addLayout(leftLayout);
        mainLayout->addLayout(rightLayout);
        setLayout(mainLayout);
Run Code Online (Sandbox Code Playgroud)

错误我得到:'错误:没有匹配函数调用'QGridLayout :: addLayout(QGridLayout*&)'
谢谢你的帮助.

c++

8
推荐指数
1
解决办法
1万
查看次数

如何以良好的风格覆盖虚拟功能?[C++]

我知道这个问题非常基本,但我在很少的出版物(网站,书籍)中遇到了不同风格的覆盖虚拟功能.我的意思是:如果我有基类:

class Base
{
public:
virtual void f() = 0;
};
Run Code Online (Sandbox Code Playgroud)

在一些出版物中,我看到要覆盖这一点,一些作者会说:

void f();     
Run Code Online (Sandbox Code Playgroud)

有些人仍然会在void之前重复虚拟关键字.哪种覆盖形式的风格很好?谢谢您的回答.

c++ overriding coding-style virtual-functions

8
推荐指数
1
解决办法
1438
查看次数

更好的cout又名coutn;

伙计们很难写出coutn,它基本上会在输入的末尾放置换行符号.在使用控制台的时候(这就是我现在所能做的一切),每次我希望线路成为新线路时,我发现写'\n'非常繁琐.
或许它已经实施了?

c++

8
推荐指数
1
解决办法
555
查看次数

我为什么需要转换?

在这段代码中:

template<class T>
struct Side
{
};

template<class T>
struct LeftSide : public Side<T>
{
};
template<class T>
struct RightSide : public Side<T>
{
};

Side<int>* f(int left, int right)
{
    return left < right ? new LeftSide<int> : new RightSide<int>;//<---Here I'm returning either left or right side
}

int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:
_错误1错误C2446:':':没有从'RightSide*'转换为'LeftSide*'_

我认为(我看错了)我可以将指针从派生分配到基础而没有任何问题.那问题出在哪里?

c++

8
推荐指数
1
解决办法
2531
查看次数

如何检查cin中是否有任何内容[C++]

有没有办法检查cin中是否有东西?我试过peek()但是如果没有peek()等待输入,那不是我想要的.谢谢

c++ istream

7
推荐指数
1
解决办法
2906
查看次数

为什么会这样(模板,SFINAE).C++

提到昨天的帖子,今天早上叫醒了我.为什么这实际上有效?只要该函数test有关,这个函数没有正文,那么它怎么能执行任何操作呢?我想知道为什么以及如何运作?我真的很想看到你的答案.

template<typename T> 
class IsClassT { 
  private: 
    typedef char One; 
    typedef struct { char a[2]; } Two; 
    template<typename C> static One test(int C::*); //NO BODY HERE
    template<typename C> static Two test(…); //NOR HERE
  public: 
    enum { Yes = sizeof(IsClassT<T>::template test<T>(0)) == sizeof(One) }; 
    enum { No = !Yes }; 
}; 
Run Code Online (Sandbox Code Playgroud)

在此之前感谢您帮助理解这个非常有趣的现象.

c++ templates sfinae

7
推荐指数
2
解决办法
469
查看次数

为什么只有第二个数组维度很重要?

为什么在处理二维数组时,第二维对编译器很重要?只是无法理解这一点.谢谢

c++ arrays

7
推荐指数
1
解决办法
570
查看次数

为他人写作

当我编写一个将由第三方继承的类时,我必须应用哪些主要和最重要的规则(优点和缺点).
谢谢.

c++ inheritance

7
推荐指数
2
解决办法
267
查看次数

奇怪的班级宣言

在Qt的qrect.h中,我发现类声明从这样开始:

class Q_CORE_EXPORT QRect {
};
Run Code Online (Sandbox Code Playgroud)

如您所见,类关键字后面有两个标识符.我怎么理解这个?
谢谢.

c++ class

7
推荐指数
2
解决办法
2418
查看次数

没有法律转换为'this'指针

请看一下这段代码然后运行它:
我得到了非常奇怪的错误:
错误1错误C2663:'Allocator :: allocate_help':2个重载没有'this'指针的合法转换

template<class FailureSignal>
class Allocator
{
private:
    template<class Exception,class Argument>
    void allocate_help(const Argument& arg,Int2Type<true>)
    {
    }

    template<class Exception,class Argument>
    std::nullptr_t allocate_help(const Argument& arg,Int2Type<false>)
    {
        return nullptr;
    }

public:
    template<class T>
    void Allocate(signed long int nObjects,T** ptr = 0)const
    {
    allocate_help<std::bad_alloc>(1,Int2Type<true>());  
    }

};

int _tmain(int argc, _TCHAR* argv[])
{
    Allocator<int> all;
    all.Allocate<int>(1);
    return 0;
}  
Run Code Online (Sandbox Code Playgroud)

我绝对不明白这个错误的消息.希望有人可以帮助我.谢谢.

c++ templates

7
推荐指数
1
解决办法
8932
查看次数