【发布时间】:2014-07-17 02:46:09
【问题描述】:
所以我有一个类 Mail,它有一个类数据成员 char type[30];和静态 const char FIRST_CLASS[];在类定义之外,我将 FIRST_CLASS[] 初始化为“First Class”。
在我的默认邮件构造函数中,我想将类型设置为 FIRST_CLASS[],但似乎无法找到这样做的方法。这是代码(有点精简,以免打扰您不需要的东西)
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <cstring>
#include <string>
using namespace std;
class Mail
{
public:
Mail();
Mail(const char* type, double perOunceCost, int weight);
Mail(const Mail& other);
~Mail()
{ }
private:
static const int TYPE_SIZE = 30;
static const char FIRST_CLASS[];
static const double FIXED_COST;
static const int DEFAULT_WEIGHT = 1;
char type[TYPE_SIZE];
int weight;
double perOunceCost;
};
const char Mail::FIRST_CLASS[] = "First Class";
const double Mail::FIXED_COST = 0.49;
// default
Mail::Mail()
{
weight = DEFAULT_WEIGHT;
perOunceCost = FIXED_COST;
type = FIRST_CLASS;
}
这是错误:
1 error C2440: '=' : cannot convert from 'const char [12]' to 'char [30]'
2 IntelliSense: expression must be a modifiable lvalue
【问题讨论】:
-
@RakibulHasan 更新了错误,感谢提醒
-
你为什么使用数组?为什么不使用
std::string?
标签: c++ arrays char cstring c-strings