woshijunjun 发表于 2021-4-16 15:32:22

为啥不对?

#include<iostream>
#include<string>
using namespace std;
class Stock
{
        private:
                char stockcode;
                int quan;               
                double price;
        public:
          Stock(char na[], int q=1000, double p=8.98)
                {
            string stockcode=na;
            quan=q;
            price=p;
      }
                void print()
                {
               cout << this->stockcode << endl;
               cout << this->quan <<endl;
               cout << this->price <<endl;
               }
};
int main()
{
    Stock s1("123456",3000,5.67);
    s1.print();
    Stock s2("654321");
    s2.print();
    return 0;
}
运行结果没有123456
也没有654321
哪位大神知道,就解答!

yuxijian2020 发表于 2021-4-16 16:01:47

本帖最后由 yuxijian2020 于 2021-4-16 16:03 编辑

Stock(char na[], int q=1000, double p=8.98)
这里直接改成
Stock(string na, int q=1000, double p=8.98)
不就完事了么


你这一半c一半c++看的贼难受

yuxijian2020 发表于 2021-4-16 16:06:56

还有
Stock(char na[], int q=1000, double p=8.98)
{ //这里为什么要重新定义局部变量,你这不就等于没有给属性赋值么,那你肯定啥也显示不出来啊
            string stockcode=na;
            quan=q;
            price=p;
}

woshijunjun 发表于 2021-4-18 16:13:45

yuxijian2020 发表于 2021-4-16 16:06
还有
Stock(char na[], int q=1000, double p=8.98)
{ //这里为什么要重新定义局部变量,你这不就等于没 ...

还是不懂怎么改
{:5_96:}

yuxijian2020 发表于 2021-4-18 16:37:46

woshijunjun 发表于 2021-4-18 16:13
还是不懂怎么改

c++ 保存字符串不是有string么,为什么还要用char na[]字符数组呢?
private:
                string stockcode;
                int quan;               
                double price;
      public:
            Stock(string na, int q=1000, double p=8.98)
                {
            stockcode = na;
            quan=q;
            price=p;
      }

不要重新创建变量,用类中的属性
页: [1]
查看完整版本: 为啥不对?