Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 类(c+;+;类)不存在默认构造函数 #包括 #包括 使用名称空间std; #ifndef TicTac_H #定义TicTac_H TicTac类 { 公众: TicTac(int,int); void setpos(int); void getpos(int); void setpos2(int); void getpos2(int); bool-takepos(); void setar(int&,int&); void setarr(); 全部作废(int,int); 作废打印(); int测试(); 私人: int-p1; int p2; 字符串tic[3][3]; 字符串x; o串; int t1; int t2; 布尔ok; }; #恩迪夫_C++ - Fatal编程技术网

C++ 类(c+;+;类)不存在默认构造函数 #包括 #包括 使用名称空间std; #ifndef TicTac_H #定义TicTac_H TicTac类 { 公众: TicTac(int,int); void setpos(int); void getpos(int); void setpos2(int); void getpos2(int); bool-takepos(); void setar(int&,int&); void setarr(); 全部作废(int,int); 作废打印(); int测试(); 私人: int-p1; int p2; 字符串tic[3][3]; 字符串x; o串; int t1; int t2; 布尔ok; }; #恩迪夫

C++ 类(c+;+;类)不存在默认构造函数 #包括 #包括 使用名称空间std; #ifndef TicTac_H #定义TicTac_H TicTac类 { 公众: TicTac(int,int); void setpos(int); void getpos(int); void setpos2(int); void getpos2(int); bool-takepos(); void setar(int&,int&); void setarr(); 全部作废(int,int); 作废打印(); int测试(); 私人: int-p1; int p2; 字符串tic[3][3]; 字符串x; o串; int t1; int t2; 布尔ok; }; #恩迪夫,c++,C++,**编译器显示了以下消息: 类“TicTac”不存在默认构造函数 “TicTac”:没有合适的默认构造函数可用 有人能帮我解决这个问题吗**错误肯定不在该代码中,而是在包含该头并试图创建类型为TicTac的对象的代码中,而不提供构造函数采用的两个参数(两个int)。除此之外,include保护应该覆盖所有文件(包括#include),并且在头中不应该有using指令(使用名称空间X)

**编译器显示了以下消息: 类“TicTac”不存在默认构造函数

“TicTac”:没有合适的默认构造函数可用
有人能帮我解决这个问题吗**

错误肯定不在该代码中,而是在包含该头并试图创建类型为
TicTac
的对象的代码中,而不提供构造函数采用的两个参数(两个
int
)。除此之外,include保护应该覆盖所有文件(包括
#include
),并且在头中不应该有using指令(
使用名称空间X
TicTac(){}re“你不应该在头中有一个using指令(使用名称空间X)”,ITYM“在头中的全局名称空间”。@Cheers:我个人认为你不应该在任何地方使用它们。除此之外,我在这里没有看到全局名称空间的任何特殊之处。它在全局命名空间中更糟糕,在任何其他ns中仍然不好。有例外,但这不是其中之一。我来自一个截然相反的观点,关于什么是理想的,很少有名字是合格的。我认为,与C风格的前缀或后缀相比,名称空间的主要特点是可能大部分使用非限定名称。无论如何,我想在头中的名称空间中使用名称空间X的实用性(或危险性)很难达成一致。因此,建议会有所不同。;-)@阿尔夫:嗯,我不是特别喜欢他们,但我不经常(嗯,也许我会)这样说教。另一方面,在标题中,无论用户的偏好如何,您都在强制所有用户使用您的选项。是否要在实现文件中使用它?在函数定义内部(无论是否在标头中使用
inline
)。我对它、您的代码、您的选择都很满意。在仅标头的模块中(非常适合避免安装问题),标头是实现代码。;-)显然截然相反的理想也存在。我希望所有内容都在标题中,每个模块都有一个文件,尽管这不是真正可以实现的。
#include<iostream>

#include<string>

using namespace std;

#ifndef TicTac_H
#define TicTac_H

class TicTac
{
public:
    TicTac(int ,int);
    void setpos(int);
    void getpos(int);
    void setpos2(int);
    void getpos2(int);
    bool takepos();
    void setar(int&, int&);
    void setarr();
    void all(int,int);
    void print();
    int test();

private:
    int p1;
    int p2;
    string tic[3][3] ;
    string x;
    string o;
    int t1;
    int t2;
    bool ok;
};
#endif