字符型数组的读取,该怎么解决

字符型数组的读取
本帖最后由 cde32 于 2013-10-10 14:55:31 编辑
#include <iostream>
using namespace std;
class A{
public:
char name[255];
//private:
char * getName( )
{  return name; }
};
class B:public A{
public:
B(char * n){
strcpy ( name,n);
}
};
void main( ){
B b("Hello!");
B a("1111!");
cout <<"Name:"<<b.getName( );
cout <<"Name:"<<a.getName( );
cout <<"name[0]:"<<name[0];//error C2065: 'name' : undeclared identifier
//error C2109: subscript requires array or pointer type
}

我想知道“char name[255]”的每个元素是什么,比如name[0],该怎样读出来?

------解决方案--------------------
cout <<"Name:"<<a.getName( )[0];
cout <<"Name:"<<b.getName( )[0];
------解决方案--------------------
int i;
for(i=0;i<255;i++)
{
  cout <<"name[i]:"<<name[i];
}
不知道楼主是不是想说这个?
引用:
#include <iostream>
using namespace std;
class A{
public:
char name[255];
//private:
char * getName( )
{  return name; }
};
class B:public A{
public:
B(char * n){
strcpy ( name,n);
}
};
void main( ){
B b("Hello!");
B a("1111!");
cout <<"Name:"<<b.getName( );
cout <<"Name:"<<a.getName( );
cout <<"name[0]:"<<name[0];//error C2065: 'name' : undeclared identifier
//error C2109: subscript requires array or pointer type
}

我想知道“char name[255]”的每个元素是什么,比如name[0],该怎样读出来?


------解决方案--------------------
你申明了两个对象,直接调用name[0]显示未定义,必须指明包含name数组的类,类被初始化后才会出现类中的成员。

a.name[0]或者a::name[0]
------解决方案--------------------
引用:
Quote: 引用:

int i;
for(i=0;i<255;i++)
{
  cout <<"name[i]:"<<name[i];
}
不知道楼主是不是想说这个?
Quote: 引用:

#include <iostream>
using namespace std;
class A{
public:
char name[255];
//private:
char * getName( )
{  return name; }
};
class B:public A{
public:
B(char * n){
strcpy ( name,n);
}
};
void main( ){
B b("Hello!");
B a("1111!");
cout <<"Name:"<<b.getName( );
cout <<"Name:"<<a.getName( );
cout <<"name[0]:"<<name[0];//error C2065: 'name' : undeclared identifier
//error C2109: subscript requires array or pointer type
}

我想知道“char name[255]”的每个元素是什么,比如name[0],该怎样读出来?


对!可这样读不出来!直接用name[0]都不行,更不要说循环了。你实际试一下就知道了。
另外,我包含了algorithm后,用“copy(name,20,ostream_iterator<char>(cout));”也读不出来!
是不是类里的数组不能直接这么读取啊?
该怎样做?


呵呵;实现一个一个输出很容易;但是我也遇到问题了,也有疑问;
你把 class A中的  char name[255] 定义为全局变量即可,但是问题同时出现;我在看看;
 同等大神解答:
  我的问题是   既然class B继承了 class A;为什么声明的 char name【255】  在main中cout <<"name[0]:"<<name[0];   name[0]为未定义?
   可能我把以前学的又忘了把?
  坐等解答
------解决方案--------------------
引用:
你申明了两个对象,直接调用name[0]显示未定义,必须指明包含name数组的类,类被初始化后才会出现类中的成员。

a.name[0]或者a::name[0]


你好,能解答下我的问题吗?
7楼的问题~!
------解决方案--------------------

B b("Hello!");
char* name = b.getName();
for(int i =0;i < 255; ++i)
{
  std::cout << name[i];
}

------解决方案--------------------

#include <cstring>
#include <iostream>
using namespace std;
class A{
public:
char name[255];
//private:
char * getName( )
{  return name; }
};
class B:public A{
public:
B(const char * n){