C++自学新手,遇到了一点小不懂,求详细解释,谢谢了

AXUBOD 2012-08-07 08:21:10
void setusername(const char*pusername)
{
if(pusername!=null)
{
strcpy(m_username,pusername);
}

}
char *getusername() const
{
return(char*)m_username;
}
特别是对这两个括号内的参数看不懂和第二个函数是什么意思啊??求详细解释
...全文
128 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
种菜的 2012-08-07
  • 打赏
  • 举报
回复
5楼正解,最好的方法就是实践,勤奋点,啥都有了。
neicole 2012-08-07
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
引用 4 楼 的回复:
因为是这样的,const 在函数后边,如果它的函数是一个类的函数的话,它就是可以使这个类的成员变量的值不能改变。
然后,假如是不在一个类里面,那么
假设一个函数是 void a::func()const;
现在变成   void ::func()const;
那么就对全局变量有影响了。
[/Quote]

这要看你的完整代码才能判断,还有就是,如果有兴趣的话,可以做个小测试试一下就知道答案罗~
neicole 2012-08-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
补充一下,函数后边的const是说明不修改成员变量的值,全局变量的值还是可以修改的。
[/Quote]

因为是这样的,const 在函数后边,如果它的函数是一个类的函数的话,它就是可以使这个类的成员变量的值不能改变。
然后,假如是不在一个类里面,那么
假设一个函数是 void a::func()const;
现在变成   void ::func()const;
那么就对全局变量有影响了。
种菜的 2012-08-07
  • 打赏
  • 举报
回复
补充一下,函数后边的const是说明不修改成员变量的值,全局变量的值还是可以修改的。
饽饽 2012-08-07
  • 打赏
  • 举报
回复
二楼说的很详细了, strcpy最好还是替换为lstrcpy更好一些
neicole 2012-08-07
  • 打赏
  • 举报
回复
void setusername(const char*pusername) // 传入用户名变量的char* 指针
{
if(pusername!=null) // 如果这个为非空指针(也就是说,这个用户名需要是有值的)
{ // 做这个判断是为了避免一些内存无意义的空操作或者是将原来m_usersname清空掉
strcpy(m_username,pusername); // 将pusrname的字符串复制到m_username变量中,具体可以了解下面的strcpy函数
}

}
char *getusername() const // 这里有个const意思是不改变全局变量的数据
{
return(char*)m_username; // 将m_username强制转换成char*类型然后作为char*指针传出
}



函数:
strcpy
语法:
#include <string.h>
char *strcpy( char *to, const char *from );
功能:复制字符串from 中的字符到字符串to,包括空值结束符。返回值为指针to。

另外,const的作用可以看看 
http://blog.csdn.net/neicole/article/details/6658713
网上还有很多挺全的资料,可以多多查阅。
lirunfa 2012-08-07
  • 打赏
  • 举报
回复
第一个函数是设置用户名,传入一个const char*指针,指针指向一个字符串,strcpy把pusername拷贝到变量m_username中。
第二个函数,获取用户名。可能m_username的类型是void*, 因此要转换成(char*)返回。const的作用是const函数不能改变类成员变量的值
dll520wf 2012-08-07
  • 打赏
  • 举报
回复
neicole(Neicole) 解释的如此之详细!受教啦~~~
呵呵。。。收藏!
gold_water 2012-08-07
  • 打赏
  • 举报
回复
深究一下C++的“指针”也许可以解决根本问题;

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧