| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1501 人关注过本帖
标题:关于构造函数的问题
只看楼主 加入收藏
o0花生0o
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-10-13
收藏
 问题点数:0 回复次数:10 
关于构造函数的问题
#include<iostream.h>
#include<stdlib.h>
class Stock
{
      char stockcode[10];
      int quan;
      double price;
public:
       Stock(char cd[],int q=1000 ,double p=8.98)
       {            
              strcpy(stockcode,cd);
              quan=q;
              price=p;   
       }
       void print(void);        
};
void Stock::print(void)
{
     cout<<this->stockcode<<" ";
     cout<<this->quan<<" ";
     cout<<this->price<<endl;
}            
int main()
{   
    Stock A="a",B("a",500,9.0);
    A.print();
    B.print();
    system("pause");
}
这个程序在声明构造函数时必须给出定义吗?
为什么在类外定义构造函数时会出错?
搜索更多相关主题的帖子: 函数 构造 
2007-12-05 17:12
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
没又说要在声明构造函数时给出定义,你把你错误的代码贴贴~

樱花大战,  有爱.
2007-12-05 17:29
o0花生0o
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-10-13
收藏
得分:0 
错误代码
#include<iostream.h>
#include<stdlib.h>
class Stock
{
      char stockcode[10];
      int quan;
      double price;
public:
       Stock(char cd[],int q=1000 ,double p=8.98);
             void print(void);        
};
Stock::Stock(char cd[],int q=1000 ,double p=8.98)
 {            
              strcpy(stockcode,cd);
              quan=q;
              price=p;   
      }

void Stock::print(void)
{
     cout<<this->stockcode<<" ";
     cout<<this->quan<<" ";
     cout<<this->price<<endl;
}            
int main()
{   
    Stock A="a",B("a",500,9.0);
    A.print();
    B.print();
    system("pause");
}
只是把构造函数放在类外定义就出错了
2007-12-06 00:41
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
#include<iostream.h>
#include<stdlib.h>
#include<string.h>
class Stock
{
      char stockcode[10];
      int quan;
      double price;
public:
       Stock(char cd[],int q=1000 ,double p=8.98);
             void print(void);        
};
Stock::Stock(char cd[],int q=1000 ,double p=8.98)   //默认参数只在声明时指出,这里时定义就不要指出了
                                                                                        改成(char cd[], int q, double p)
{            
              strcpy(stockcode,cd);
              quan=q;
              price=p;   
      }

void Stock::print(void)
{
     cout<<this->stockcode<<" ";
     cout<<this->quan<<" ";
     cout<<this->price<<endl;
}            
int main()
{   
    Stock A="a",B("a",500,9.0);
    A.print();
    B.print();
    system("pause");
return 0;
}

樱花大战,  有爱.
2007-12-06 08:33
yanyananlin
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-10-21
收藏
得分:0 
我是初学者,请问strcpy(stockcode,cd);这是什么意思啊?
2007-12-06 12:24
o0花生0o
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-10-13
收藏
得分:0 
就是把cd的值赋给stockcode
strcpy是字符串拷贝函数






问题解决了
谢谢四楼了

[[italic] 本帖最后由 o0花生0o 于 2007-12-6 18:29 编辑 [/italic]]
2007-12-06 18:28
yanyananlin
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-10-21
收藏
得分:0 
明白了,谢谢你~
2007-12-06 22:06
way3
Rank: 1
来 自:湖南
等 级:新手上路
帖 子:83
专家分:0
注 册:2007-12-8
收藏
得分:0 
还有一个问题就是要有一个处理字符串函数的头文件.
2007-12-08 16:18
o0花生0o
Rank: 1
等 级:新手上路
帖 子:60
专家分:0
注 册:2007-10-13
收藏
得分:0 
没有处理字符串函数的头文件编译也没有出错
2007-12-10 09:12
mayungang
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-12-10
收藏
得分:0 
我想问一下,strcpy(stockcode,cd);是如何实现值复制的呢,说具体一些好吗
2007-12-10 13:51
快速回复:关于构造函数的问题
数据加载中...
 
   



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

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