读书人

c++字符串传递的有关问题。新手多

发布时间: 2012-02-05 12:07:14 作者: rapoo

c++字符串传递的问题。。。新手,谢谢大家
构造函数
private:
char name[];
baby::baby(char * n,int a)
{
strcpy(n,name);
age = a;
hunger = 0;
nappy = 0;
boredom = 0;
}
baby.cpp
在这里面声明新对象
baby( "Bob ",6);

最后没有传name进去。。。请问大家应该怎么传递参数。。在里面赋值给name。。。谢谢

[解决办法]
1.
char name[1024]; //得有内存存放
2。
strcpy(name,n); //从n字符串给name赋值的
okokok
[解决办法]
C++的话建议使用string类型,动态分配内存,好用的
[解决办法]
class baby
{
private :
char name[];
};

baby::baby(char * n, int a)
{
delete[] name;
name = new char[a+1];
strcpy(name,a);
}
[解决办法]
#include <iostream>
#include <string>

using namespace std;

class Baby
{
public:
Baby(const char* _name, int _age)
:age(_age)
{
int nChar = strlen(_name);
name = new char[nChar+1];
strcpy(name, _name);
}

~Baby()
{
if (name) delete []name;
}

void ShowMe()
{
cout < < "name= " < <name < < "\t " < < "age= " < <age < <endl;
}

private:
char* name;
int age;

};

int main()
{
Baby bob( "Bob ", 10);
bob.ShowMe();
system( "pause ");
return 0;
}

[解决办法]
name = new char[];
==================
你得给个数的,new char[1024];
[解决办法]
name = new char[];
name要占多少字节? 你让编译器去猜啊?
呵呵
你得明确了 把中括号中填一个合适的数
[解决办法]
private:
char *name; //用指针成员
baby::baby(char * n,int a)
{
name = new char[strlen(n)+1]; //动态分配空间
strcpy(n,name); //OK
age = a;
hunger = 0;
nappy = 0;
boredom = 0;
}

读书人网 >C++

热点推荐