| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 366 人关注过本帖
标题:问个比较2的问题,vector作为class成员
只看楼主 加入收藏
melody_rain
Rank: 2
等 级:论坛游民
帖 子:19
专家分:10
注 册:2012-7-25
结帖率:80%
收藏
已结贴  问题点数:10 回复次数:7 
问个比较2的问题,vector作为class成员
class xx
{
  private:
    std::vector< unsigned char > _pixels(_WIDTH*_WIDTH*4);
}

为嘛不可以这样用设定_pixels的大小?
谢谢
搜索更多相关主题的帖子: private 
2012-10-23 10:29
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:5 
class xx
{
private:
    int i = 10;
}
见过这样的?
2012-10-23 11:56
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:5 
回复 2楼 寒风中的细雨
C++11 中可以 ^_^
收到的鲜花
  • 寒风中的细雨2012-10-23 12:44 送鲜花  10朵   附言:感谢 纠正!
2012-10-23 12:18
melody_rain
Rank: 2
等 级:论坛游民
帖 子:19
专家分:10
注 册:2012-7-25
收藏
得分:0 
回复 2楼 寒风中的细雨
std::vector< unsigned char > _pixels(_WIDTH*_WIDTH*4);难道不仅仅是申明一个_WIDTH*_WIDTH*4这么大的vector嘛? 看来问题确实略2... : )
2012-10-23 14:16
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
回复 4楼 melody_rain
C++03标准中只有“static const integral data members”可以直接声明初值,其它的都必须在构造函数初始化列表中初始化

程序代码:
#include <vector>

class xx
{
public:
    xx() : val_(4), pixels_(4)
    {
    }

private:
    int val_;
    std::vector<unsigned char> pixels_;
public:
    static const int scint = 123;
    static const float scflt;
};
const float xx::scflt = 123.456f;

int main()
{
    int a = xx::scint;
    float b = xx::scflt;

    return 0;
}

2012-10-23 14:44
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
如果在 C++11 中,我给两个代替品
程序代码:
class xx
{
private:
    //std::vector<unsigned char> pixels_( 4 );
    std::vector<unsigned char> a_{ 0, 0, 0, 0 };
    std::vector<unsigned char> b_ = std::vector<unsigned char>(4);
};

2012-10-23 14:49
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:0 
回复 4楼 melody_rain
程序代码:
#include <vector>
#include <iostream>
using namespace std;

class test
{
public:
    test(){cout << "test::test()" << endl; }
    test(const test&t){cout << "test::test(const test&t)" << endl; }
};

int main()
{
    vector<test> ivec(50);

    cout << ivec.size() << endl;

    return 0;
}
2012-10-23 15:31
melody_rain
Rank: 2
等 级:论坛游民
帖 子:19
专家分:10
注 册:2012-7-25
收藏
得分:0 
我理解了 谢谢两位斑竹~
2012-10-23 17:27
快速回复:问个比较2的问题,vector作为class成员
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021832 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved