【发布时间】:2014-08-21 11:04:04
【问题描述】:
我是一名前 c 程序员,过去几年一直在使用 python。我现在正在尝试理解 C++ 对象编程。我创建了一个包含结构的类。我想将对类的引用传递给函数。我已经阅读了几篇关于通过引用传递的文章,如下所示:
passing object by reference in C++
是否可以将类引用传递给函数,或者这是在 c++ 中无法完成的事情?
我正在尝试将对类的引用传递给打印 printStruct 函数。 这是我的例子:
更正的代码
#include "stdafx.h"
#include <string>
#include <iostream>
class SampleClass
{
public:
struct TestStructType {
std::string string1;
};
SampleClass();
std::string GetString1();
private:
TestStructType PrivateVar;
};
SampleClass::SampleClass()
{
PrivateVar.string1 = "String 1";
};
std::string SampleClass::GetString1() { return PrivateVar.string1; };
void printStruct(SampleClass&);
int _tmain(int argc, _TCHAR* argv[])
{
SampleClass sc;
std::cout << sc.GetString1() << std::endl;
printStruct(sc);
return 0;
};
void printStruct(SampleClass& ssc)
{
std::cout << "The String is: " << ssc.GetString1() << std::endl;
};
错误信息: 错误 1 错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持 default-int c:\users\visual studio 2013\projects\pass class\pass class\pass class.cpp 8 1 Pass Class
错误 2 错误 C2143:语法错误:在 '&' 之前缺少 ',' c:\users\visual studio 2013\projects\pass class\pass class\pass class.cpp 8 1 Pass Class
5 IntelliSense:对象具有与成员函数不兼容的类型限定符 对象类型为:const SampleClass c:\Users\Visual Studio 2013\Projects\Pass Class\Pass Class\Pass Class.cpp 41 37 Pass Class
【问题讨论】:
-
您在执行此操作时遇到了什么问题?在我看来,您正在寻找stackoverflow.com/questions/57483/…。
-
好吧,那个时候还没有声明这个类。这与 C 中的相同。
-
请编辑您的帖子并在此处包含确切的错误消息而不是评论。
-
printStruct(psc);应该只是printStruct(sc);。你不需要指针。 -
是的。声明指向类的指针的行有错误。它应该如下所示: SampleClass * psc = ≻