0

这是我的示例代码:

#include <iostream>
#include <cstring>
#include <vector>
#include <iterator>
#include "MQmessage.h"

using namespace std;

int main()
{
    // declaring an array to store name/value pair
    struct Property  user_property[15];
    const char* const list[] = {"stateCode","errorCode"};
    const size_t len = sizeof(list) / sizeof(list[0]);
    for (size_t i = 0; i < len; ++i) {
        strcpy(user_property[0].name,list[i]);
    }
    for (size_t i = 0; i < len; ++i) {
        std::cout<<user_property[i]<<endl;
    }
    return 0;
}

我在代码中遇到以下错误:

与 std::cout 中的 'operator<<' 不匹配

有人可以告诉我我做错了什么吗?

4

3 回答 3

3

我猜你想要std::cout<<user_property[i].name<<endl,否则你将不得不重载 of 的<<运算符Property

于 2012-10-09T07:04:29.690 回答
1

您需要operator<<struct Property.

请注意,如果您只想输出Property::name它,std::string您还需要#include <string>使其operator<<可用std::string

于 2012-10-09T07:04:01.417 回答
0

只需为“属性”添加一个打印功能,如下所示:

void print()
{
    std::cout<<this->name<<endl;
    std::cout<<this->othermember<<endl;  //if you have some other members
}

并在您的主要只是执行以下操作:

for (size_t i = 0; i < len; ++i) {
    user_property[i].print(); }
于 2012-10-09T07:21:05.270 回答