菜鸟问题,不明白为什么编译不过~
程序代码:
// stock1.cpp ?Stock class implementation with constructors, destructor added #include <iostream> #include "stock1.h" // constructors (verbose versions) Stock::Stock() // default constructor { std::cout << "Default constructor called\n"; std::strcpy(company, "no name"); shares = 0; share_val = 0.0; total_val = 0.0; } Stock::Stock(const char * co, int n, double pr) { std::cout << "Constructor using " << co << " called\n"; std::strncpy(company, co, 29); company[29] = '\0'; if (n < 0) { std::cerr << "Number of shares can't be negative; " << company << " shares set to 0.\n"; shares = 0; } else shares = n; share_val = pr; set_tot(); } // class destructor Stock::~Stock() // verbose class destructor { std::cout << "Bye, " << company << "!\n"; } // other methods void Stock::buy(int num, double price) { if (num < 0) { std::cerr << "Number of shares purchased can't be negative. " << "Transaction is aborted.\n"; } else { shares += num; share_val = price; set_tot(); } } void Stock::sell(int num, double price) { using std::cerr; if (num < 0) { cerr << "Number of shares sold can't be negative. " << "Transaction is aborted.\n"; } else if (num > shares) { cerr << "You can't sell more than you have! " << "Transaction is aborted.\n"; } else { shares -= num; share_val = price; set_tot(); } } void Stock::update(double price) { share_val = price; set_tot(); } void Stock::show() { using std::cout; using std::endl; cout << "Company: " << company << " Shares: " << shares << endl << " Share Price: $" << share_val << " Total Worth: $" << total_val << endl; }
提示:
error C2039: 'strcpy' : is not a member of 'std'
error C2039: 'strncpy' : is not a member of 'std'
怎么改?这是primer plus 上的习题代码来得~~我用vc++的