在 std::shared_ptr<> 中新建之前的预期标识符
expected identifier before new in std::shared_ptr<>
我在"序列化程序"类中使用共享指针时遇到错误。
这是我的详细错误:
client.h:28:52: error: expected identifier before new
std::shared_ptr<Serializer> serializerObj2(new Serializer);
^
client.h:28:52: error: expected , or .. before new
这是我的最小代码:
std::shared_ptr<Serializer> serializerObj2(new Serializer);
这是我的扩展代码:
#include "serializer.h"
#include<iostream>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<unistd.h>
#include<stdlib.h>
#include<thread>
#include<string>
#include<cstring>
#include<utility>
#include <boost/filesystem.hpp>
#include<memory>
namespace TCP
{
class Client
{
public:
void start();
private:
int networkSocket=socket(AF_INET,SOCK_STREAM,0);
std::shared_ptr<Serializer> serializerObj2(new Serializer);
std::shared_ptr<Serializer> serializerObj=std::make_shared<Serializer>();
bool checkConnection();
std::pair<bool,std::string>getFile();
void sendMessage();
void setMessage();
};
}//closes namespace `
这是我的序列化程序 h 文件:
#ifndef D_SERIALIZER_H
#define D_SERIALIZER_H
#include<iostream>
#include<arpa/inet.h>
#include<string>
namespace TCP
{
class Serializer
{
public:
//sender
void addIntToStream(int);
void addStringToStream(std::string);
void addCharToStream(char);
std::pair<bool,const char*>getStream(size_t requestSize_);
void delStream(size_t deleteSize_);
//receiver
void addByteToStream(const char*,size_t);
std::pair<bool,int> retrieveIntFromStream();
std::pair<bool,char> retrieveCharFromStream();
std::pair<bool,std::string> retrieveStringFromStream(int);
Serializer()
{
_stream="";
_it=_stream.begin();
}
private:
std::string _stream;
std::string::iterator _it;
};
} //closes namespace
#endif
class Serializer
{
public:
std::shared_ptr<Serializer> serializerObj2(new Serializer);
这是类中的变量声明。
传统上,它们只能在构造函数中初始化。
但是,从 C++11 开始,也可以使用
type var = value;
语法。您不能在那里使用括号,因为这会被解析作为函数声明。因此,请将其更改为:
std::shared_ptr<Serializer> serializerObj2 = new Serializer;
相关文章:
- 在C++中,是否可以基于给定的标识符创建基类的新实例,反之亦然
- #ifdef和未声明的标识符
- f2、f3、f4标识符未找到
- 设置 Visual Studio for MPI: 找不到标识符错误
- 未声明的标识符编译暗黑破坏神 2 程序"muleview"
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- Google protobuf 时间戳未声明标识符,在 Windows 上具有C++
- 如何让 GCC/Clang 在保留标识符上出错
- 错误 C2760:语法错误:映射迭代器上意外的标记"标识符",预期的";"
- 当简单捕获中的标识符显示为参数的声明符 ID 时,没有编译器诊断
- 使用说明符 extern 声明的C++中的标识符链接
- C++:枚举:错误:应使用标识符而不是"}"
- 为什么我们不能重复使用具有不同模板参数的别名模板标识符?
- Visual Studio C++ PlaySound 标识符未定义
- 为什么我们不编写可以处理C++标识符的汇编器和链接器?
- 使用未声明的标识符"sqrt"?
- 找不到标识符合并
- 在模板化函数中重新定义(忽略)的 SWIG 标识符
- 在 c++ 中找不到此函数的标识符
- 在 std::shared_ptr<> 中新建之前的预期标识符