| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 532 人关注过本帖
标题:[求助] 构造函数
只看楼主 加入收藏
xialup
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2006-3-20
收藏
 问题点数:0 回复次数:4 
[求助] 构造函数
class sequence{
public:
bool add(int ,const string&);
bool del(int);
void output()const;
sequence(const string&);
sequence(const char*); 请指教一下这两个参数的具体意义以及这两个构造函数有什么区别
~sequence();
protected:
enum{maxsize=100};
string s[maxsize];
int last;
private:
string filename;
ifstream in;
ofstream out;
};
谢了先`~
搜索更多相关主题的帖子: 函数 构造 
2006-05-31 11:38
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
我觉得应该没什么区别

[此贴子已经被作者于2006-5-31 13:46:20编辑过]



[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-31 11:52
xialup
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2006-3-20
收藏
得分:0 
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
class sequence{
public:
bool add(int ,const string&);
bool del(int);
void output()const;
sequence():last(-1){}
sequence(const char*);
~sequence();
protected:
enum{maxsize=100};
string s[maxsize];
int last;
private:
string filename;
ifstream in;
ofstream out;
};
bool sequence::add(int pos,const string& entry){
if(last==maxsize-1||pos<0||pos>last-1)
return false;
for(int i=last;i>=pos;i--)
s[i+1]=s[i];
s[pos]=entry;
last++;
return true;
}
bool sequence::del(int pos){
if(pos<0||pos>last)
return false;
for(int i=pos;i<last;i++)
s[i]=s[i+1];
last--;
return true;
}
void sequence::output() const{
for(int i=0;i<=last;i++)
cout<<i<<" "<<s[i]<<endl;
}
sequence::sequence(const char* fname){
last=-1;
filename=fname;
in.open(fname);
if(!in)
return ;
while (last<maxsize-1&&getline(in,s[last+1]))
last++;
in.close();
}
sequence::~sequence(){
if(filename=="")
return ;
out.open(filename.c_str());
for(int i=0;i<=last;i++)
out<<s[i]<<endl;
out.close();
}
class sorted:public sequence{
public:
bool adds(const string&);
sorted(){}
sorted(const char*);
protected:
void sort();
private:
using sequence::add;
};
void sorted::sort(){
string temp;
int i,j;
for(i=0;i<=last-1;i++){
temp=s[i+1];
for(i=i;j>=0;j--)
if(temp<s[j])
s[i+1]=s[j];
else
break ;
s[j+1]=temp;
}
}
bool sorted::adds(const string& entry){
int i;
for(i=0;i<=last;i++)
if(entry<=s[i])
break;
return add(i,entry);
}
sorted::sorted(const char* fname):sequence(fname){
sort();
}
int main(){
string inbuffer,where;
int wh;
sequence items("test.dat");
while(true){
cout<<"\nsequence output\n";
items.output();
cout<<"\n1*****add\n"
<<"\n2*****delete\n"
<<"\n3*****quit\n";
getline(cin,inbuffer);
if(inbuffer=="1"){
cout<<"\nitem to add:";
getline(cin,inbuffer);
cout<<"\n add to where?";
getline(cin,where);
wh=atoi(where.c_str());
if(items.add(wh,inbuffer))
cout<<"item added\n";
else
cout<<"item not added";
}
else if(inbuffer=="2"){
cout<<"where to delete:";
getline(cin,where);
wh=atoi(where.c_str());
if(items.del(wh))
cout<<"item deleted\n";
else
cout<<"item not deleted";
}
else if (inbuffer=="3")
break;
}
system("pause");
return 0;
}
有点小问题 请帮忙改正一下 谢了~~~

[此贴子已经被作者于2006-5-31 14:24:54编辑过]


2006-05-31 13:42
ooooo
Rank: 1
等 级:新手上路
威 望:1
帖 子:135
专家分:0
注 册:2005-6-24
收藏
得分:0 

string类与const char*的关系
string abc="abcde";
const char *t=abc.c_str();

const char *m="hijklm";

string efg=m;

编译错误更正
sorted::sorted(const char* fname):sequence(fname){


2006-05-31 14:03
xialup
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2006-3-20
收藏
得分:0 

OK总算清楚了 谢了~~O~~


2006-05-31 14:08
快速回复:[求助] 构造函数
数据加载中...
 
   



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

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