为什么小弟我的结构中使用string是不对呢

为什么我的结构中使用string是不对呢?
#include<iostream>
#include<string>
struct CandyBar
{
    char brand[20];
    float weight;
    int calories;
};
在这个里
char bran[20];在后面就没有问题,但是如果我写成string brand;
就会出现错误,这是为什么啊?
string struct

------解决方案--------------------
gcc4.6.2编译没有什么问题,是不是楼主忘记了命名空间了呢,如果师兄string的话记得这么定义;std::string brand;
------解决方案--------------------
引用:
#include<iostream>
#include<string>
struct CandyBar
{
   char brand[20];
    float weight;
    int calories;
};
int main()
{
    using namespace std;
    CandyBar snack=
    {……


那是当然了。 改成std::string后CandyBar就不再是一个POD(plain old data)了,就不能用CandyBar cb = {....}; 

C++ 11以后可能可以,统一的初始化器。