| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2485 人关注过本帖
标题:关于运算符重载中的string类型问题
只看楼主 加入收藏
debroa723
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:23
帖 子:862
专家分:1954
注 册:2008-10-12
收藏
得分:0 
你的代码,我在VS2010下,以下几个地方的改动后,编译通过。
1 包含的头文件改为
#include <iostream>
#include <string>
2构造器 
String::String(int s)
{
    str=s;
}
改为
String(const string& s);
String::String(const string& s):str(s)
{
}
3 增加默认构造器
String(void):str("")
{
}
我不知道VC6下为何报出不能访问私有成员的错误而到了VS2010下就没有报了,手上也没有VC6,所以也无从研究。猜想可能是头文件的差别吧。

至于预编译,打开工程属性中的使用预编译头的属性,一般在VS生成项目时,都会自动生成文件stdafx.h stdafx.cpp,它们就是预编译头,你将工程中其它地方的#include全都放到这里,其它地方的就全部去掉,然后在所有CPP文件中增加#include "stdafx.h",每当增加头文件时,都只是加入到stdafx.h中。而stdafx.h中的包含顺序也是需要认真考虑的,合理的程序代码和结构才能做到这一点(所有包含全在头文件中)。
2011-05-22 22:00
linw1225
Rank: 3Rank: 3
来 自:福建
等 级:论坛游侠
帖 子:110
专家分:145
注 册:2011-4-7
收藏
得分:0 
回复 11楼 debroa723
果然VC6.0是不行的。
好吧,我们才刚学,貌似这样的类型都是定义一个非常长的字符数组实现输入。
大概以后就能知道了。
麻烦了。

Einmal ist keinmal
2011-05-24 14:02
快速回复:关于运算符重载中的string类型问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014021 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved