相关疑难解决方法(0)

为什么允许没有名字的声明?

在阅读标准时,我真的很惊讶地看到,实际上,名称在声明中是可选的:

struct Magic {};
int main() {
  int; // well-formed
  Magic; // well-formed
}
Run Code Online (Sandbox Code Playgroud)

对于那些有兴趣阅读标准的人来说,这是因为在简单声明中,init-declarator-list是可选的.这是一个演示.

所以我真的想知道为什么这是允许的.我为什么要这么做?这对我来说毫无意义.我的理由是,因为如果没有意义,为什么要允许呢?

c++ declaration definition c++11

10
推荐指数
1
解决办法
770
查看次数

使用指针的C++拷贝构造函数

任何人都可以解释*p=*q这个C++代码的含义吗?这是一个复制构造函数的概念吗?

class A{
  //any code
}

int main(){
  A *p=new A();
  A *q=new A();
  *p=*q;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ pointers copy-constructor

9
推荐指数
3
解决办法
4916
查看次数

创建没有变量的类对象

因此,我创建了“汽车”类。然后,我为我的课堂汽车中的对象创建变量(audi)。一切都很好,但我注意到我可以创建一个对象(引擎值为50),而无需指定要保存的变量。那么现在如何访问该对象?

#include <iostream>

using namespace std;

class Cars
{
public:
    int getStatus();
    Cars(int engine=5);
private:
    int m_engine;
};
Cars::Cars(int engine)
{
    m_engine=engine;
    cout<<"A new car is made."<<endl;
}
Cars::getStatus()
{
    cout<<m_engine<<endl;
}

int main()
{
    Cars audi(10);
    audi.getStatus();
    Cars(50);

}
Run Code Online (Sandbox Code Playgroud)

oop class object c++14

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

在C++中创建临时无名类实例

有时我需要实例化一个类才能调用它的一个方法.例如,在Qt中读取注册表.

QSettings settings;
settings.setValue( DEST_FOLDER, destDir );
Run Code Online (Sandbox Code Playgroud)

但我改用这种语法.

QSettings().setValue( DEST_FOLDER, destDir );
Run Code Online (Sandbox Code Playgroud)

它有效,但我没有看到任何关于它的文档,它叫什么?我搜索了"无名的c ++类",但它没有出现.有匿名课程,但我认为这是不同的.

我的问题是它有点像调用构造函数..这种语法有没有名称?有人可以解释或指向我这种初始化的文档吗?愚蠢的问题但这样做不好吗?

c++

-2
推荐指数
1
解决办法
1095
查看次数

声明没有变量名c ++的实例

由静态数据字段引起的消费者文件中询问C++ Error链接之后,我为StateConservator的一个实例尝试了两种不同的声明:

StateConservator cs(*pContainer, pDoc->GetConfiguration());
Run Code Online (Sandbox Code Playgroud)

StateConservator(*pContainer, pDoc->GetConfiguration());
Run Code Online (Sandbox Code Playgroud)

第一个做了我想要的,它只在范围结束后才传递析构函数.第二个在声明本身的行中传递析构函数.

编译器是否正常运行?如果是正确的行为,在该行中声明匿名变量的方法是什么?

c++ constructor anonymous variable-declaration

-3
推荐指数
1
解决办法
1533
查看次数