初学vc++.net 求助!!不可访问类中的private成员!!!
调试不过 提示问题时
d:\project\WindowsApplication\vc++\animals\animals.cpp(54): error C2248: “animal::SetName” : 无法访问 private 成员(在“animal”类中声明)
程序代码如下:
// 这是使用应用程序向导生成的 VC++
// 应用程序项目的主项目文件。
#include "stdafx.h"
#include <string.h>
#include <tchar.h>
#using <mscorlib.dll>
using namespace System;
__gc class animal
{
public:
int legs;
private:
String *strName;
void SetName(String *Name)
{
strName = strName->Copy(Name);
};
String* GetName()
{
return strName;
};
};
int _tmain()
{
// TODO: 请用您自己的代码替换下面的示例代码。
//Console::WriteLine(S"Hello World");
animal *Cat;
animal *Dog;
Cat = new animal;
Dog = new animal;
Cat->SetName("cat ");;
Cat->legs = 4;
Dog->SetName("dog");
Dog->legs = 4;
Console::WriteLine("Animal 1");
Console::Write("Name:");
Console::WriteLine("Cat->GetName()");
Console::Write("legs:");
Console::WriteLine("(*Cat).legs");
Console::WriteLine("--------------");
Console::WriteLine("Animal 2");
Console::Write("Name:");
Console::WriteLine("Dog->GetName()");
Console::Write("legs:");
Console::WriteLine("(*Dog).legs");
Console::WriteLine("--------------");
return 0;
}
问题点数:20、回复次数:7Top
1 楼wengnet(西门吹雪)回复于 2006-03-09 21:59:38 得分 5
我晕,private 是受保护的成员,当然不能访问了,你把它改成public就能访问了~!Top
2 楼anthit()回复于 2006-03-10 08:51:54 得分 0
我用的是类中函数来访问不行吗?书上的例子就是这样!!就是调不通!!Top
3 楼anthit()回复于 2006-03-10 08:57:16 得分 0
跪求!!在线等Top
4 楼GodOfLove(上帝之爱)回复于 2006-03-10 09:01:05 得分 5
你改成PROTECT试试
Top
5 楼anthit()回复于 2006-03-10 09:29:20 得分 0
改成protected也编译不过去,是不是字符串的问题?Top
6 楼Cwdf2005(四海为家)回复于 2006-03-15 11:26:34 得分 5
你的程序中不光strName是private的,SetName()和GetName()函数也是private的,在函数前加public将其改为公有的就行了Top
7 楼Tom_Real()回复于 2006-03-15 11:47:19 得分 5
不是strName不能访问,是方法不能访问。Top




