c++程序改错,下列代码为什么编译不出来,报很多错。还有主函数main对象作为参数是什么意思?请大神帮忙

#include <iostream>

using namespace std;

class Myclass {
public:
friend void SetMember(Myclass &my, char);
friend void SetMember(Myclass &my, char, char);

private:
char my_char1;
char my_char2;
};

void SetMember(Myclass &my, char mem1) {
my.my_char1 = mem1;
}

void SetMember(Myclass &my, char mem1, char mem2) {
my.my_char1 = mem1;
my.my_char2 = mem2;
}

int main() {
Myclass obj;
SetMember(obj, 5);
SetMember(obj, 7, 9);
return 0;
}

vs2013无报错,正常编译
gcc也能正常编译
是你编译软件的事吧
温馨提示:内容为网友见解,仅供参考
无其他回答

有关C++ cout 输出问题 为什么下面的代码会报错,如果用注释的写法就是...
刚用代码测了下,的确是需要加上const的才可以。不加const的话,不管加不加括号都会出错。看来的确是临时对象的关系,临时对象是实际是const的,所以找最匹配的<<运算时,friend ostream &operator<<(ostream &os,test &t); 不通过的。最后找到const unsigned char*了,但const test是转不成const ...

为什么c++编译器会出现编译错误?
语法错误:代码中存在语法错误,如括号不匹配、缺少分号、变量声明不正确等。编译器会在遇到这些错误时立即停止编译,并报告具体的错误信息。语义错误:代码中的逻辑错误,如使用了未定义的变量、函数调用了不存在的参数、类型不匹配等。这些错误在编译时可能不会立即被发现,但会在运行时导致程序崩溃或行为...

C++编译出错,怎么回事?
1、你写的这个函数只有省名,没有定义。2、这个函数是动态连接库导出的函数,而你没有连接它的lib库文件可以用“#pragma comment(lib, "那个库.lib")”编译命令或设置VC的lib文件路径。仔细查看代码是构建了main函数的,但是如下代码:(红框位置)书写错误导致了程序无法执行main()函数(未定义),...

C++有错,这是什么意思Main.cc: In function 'int main()': Main.c...
需要把代码 显示显示出来,单单看错误描述 不行。很多 错误描述都是很机械的,看起来和错误本身没有直接关系。很多错误描述 都是 从机器角度 来描述的。

为什么我的c++运行不出来呢?
缺少库文件或头文件:代码中使用了某些库函数或头文件,但是编译器无法找到相应的库文件或头文件,导致编译失败。可以检查编译器的搜索路径是否正确,或手动添加缺失的库文件或头文件。环境问题:代码在不同的操作系统、编译器或硬件平台上可能存在差异,导致代码无法正常运行。可以检查编译器和操作系统的兼容...

求帮忙修改c++程序,下面是用栈计算后辍表达式值的程序,请把错误和为...
\/\/int calculation(String B,pseqstack pastack) String C里没有这个类型的,C++里是string,改成char*试了下 int calculation(char* B,pseqstack pastack){ \/\/char a[];数组声明时必须有确定的大小,因为不知道大小,我就瞎写了个 char a[1000];\/\/int i,n,a,b,c;上面已经定义了一个...

c语言和c++中主函数main()的括号中为什么可以有参数
这是因为:主函数main并非程序的真正入口!在编译器对你的工程文件进行编译时,它是先找到你的main函数,然后根据main函数类型,把一段前缀入口程序预先编译,再让它去调用main函数.当你的main函数需要参数时,它就编译有参数main函数调用,反之则编译无参数main函数调用.所以编译器是自动识别你的main函数类型的!

为什么c++抛出异常后还能对函数内的局部对象进行析构
原因是C++是一个静态绑定的语言。在编译过程中,所有的非虚函数调用都必须分析完成。即使是虚函数,也需检查可访问性。因些,当在栈上生成对象时,对象 会自动析构,也就说析构函数必须可以访问。而堆上生成对象,由于析构时机由程序员控制,所以不一定需要析构函数。保证了不能在栈上生成对象后,...

为什么这段代码行不通?提示:无效的过程调用或参数。
11.试图在函数范围外使用用该函数声明的变量(局部变量)会导致 LNK2001。二、编译和链接问题 1.项目缺少对库 (.LIB) 或对象 (.OBJ) 文件的引用。有关更多信息,请参见用作链接器输入的 .lib 文件。2.如果使用 \/NODEFAULTLIB 或 \/Zl,包含所需代码的库将不会链接到项目,除非已显式地包括了...

一道c++题目, 下列不合法的main函数命令行参数表示方式是:
当main函数有形参时,main()中的参数第一个表示个数(包含命令名字在内),第二个表示对应的内容,应该为 char *argv[],即输入一些字符串。A和D其实是一样的 只是名字不同 无所谓。B中的**arv 指向指针的指针 可以。C则不对。

相似回答