gpt4 book ai didi

c++ - 构造函数的问题

转载 作者:太空狗 更新时间:2023-10-29 20:11:43 24 4
gpt4 key购买 nike

简介

我真的是 C++ 新手。我已经开始阅读一些书籍并在互联网上搜索一些东西。但我的主要问题是调试 C++ 代码和基础知识。

因此,我想创建一个名为 ClientTcp 的新类。如果不带参数创建对象,IP和端口应该是标准的(127.0.0.1:8000)。

我读过这个问题 Constructor Overloading in C++ .

所以我创建了这段代码:

ClientTcp.h 文件。

class ClientTcp{
public:
// non arguments, create loopback connection
ClientTcp();

ClientTcp(std::string, std::string);

virtual ~ClientTcp();
protected:
private:
std::string ip_, port_;
};

ClientTcp.cpp 文件

#include "ClientTcp.h"

ClientTcp::ClientTcp(){
ip_ = "127.0.0.1";
port_ = "8000";
}

ClientTcp::ClientTcp(std::string ip, std::string port){
ip_.assign(ip);
port_.assign(port);
}

ClientTcp::~ClientTcp(){
//dtor
}

main.cpp 文件

#include <string>
#include <iostream>
#include "json.hpp"
#include <ClientTcp.h>

std::string cip, cport;
cip = "127.0.0.1";
cport = "9510";
ClientTcp c(cip, cport);

问题看起来很完美,但我有一个我无法理解的荒谬错误。

error: expected ‘)’ before ‘,’ token|

行:此错误出现在 ClientTcp(string, string); 行中。

最佳答案

在您的 ClientTcp(std::string,std::string); 声明中, std::string 的定义需要可用,无论您是否将其包含在其他翻译单元中。

修复是#include<string>ClientTcp.h .

关于c++ - 构造函数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31609432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com