获取“没有命名类型错误”,但我命名一个类型

时间:2015-07-02 18:11:41

标签: c++ codeblocks

我确定我忽略了一些基本的东西,但我无法理解。我有这段代码:

OnButton1Click

这些前5行在error: smpp_socket does not name a type 函数内部工作正常,但只要我将它们移到外面(因为我不想在函数结束时关闭连接),我得到< / p>

smpp_socket->connect(endpoint);

指向std::shared_ptr<tcp::socket>行。

但直接在上面的行将类型命名为onBackPressed(),不是吗?

我做错了什么?

2 个答案:

答案 0 :(得分:2)

命名空间范围只能包含声明,smpp_socket->connect(endpoint);不是声明 - 它是一个声明。

C ++标准部分[basic.link] / 1读取:

  

程序由一个或多个链接在一起的翻译单元(第2条)组成。翻译单元由一系列声明组成。

答案 1 :(得分:2)

带错误的行在全局范围内,它不是声明或类/方法/函数定义 - 它是函数调用。你必须在一个函数中做到这一点。