我一直在编程,并且在 c++ 类中发现了奇怪的行为。所以我创建了一个简单的类,其中包含字符串、该类的构造函数和从对象打印字符串的友元方法(显示)。但正如您在 main 函数中看到的那样。我传递给方法(显示)简单的字符串,它可以工作。我发现它很方便,但是如果方法参数是对对象的引用,为什么它会起作用?
#include <iostream>
using namespace std;
class lol
{
char * str;
public:
lol(const char * s);
friend void show(const lol & l);
};
lol::lol(const char * s) //assign string to object
{
str = new char[strlen(s)+1];
strcpy(str,s);
}
void show(const lol & l) //prints string from object
{
cout << l.str;
};
int main()
{
show("TEST"); //passing string but not an object
return 0;
};