typedef unsigned char uchar;定义为私有的,在公有中无法使用

通过typedef自定义的类型,放在私有中,在公有中使用,提示未定义。

#pragma once
#include <iostream>

class _message
{
public:
    _message();

    ~_message();

    _message &init();

    const uchar *data() const;  //uchar未定义

    uchar *data();

    std::size_t length() const;

    const uchar *body() const;

    uchar *body();

    const uchar *body_without_format() const;

    uchar *body_without_format();

    std::size_t body_length() const;

    std::size_t body_length_without_format() const;

    void body_length(std::size_t new_length);

    void body_length_without_format(std::size_t new_length);

    bool decode_header();

    void encode_header();

    int get_err_code();


public:


private:
    typedef unsigned char uchar;
    typedef unsigned short ushort;

    static const int m_ihead_len = 2;
    static const int m_imax_body_len = 2046;
    static const int m_iformat_len = 8;
    uchar m_szdata[m_ihead_len + m_imax_body_len];
    std::size_t m_body_length;
    std::size_t m_off_set;
};

 

将typedef unsigned char uchar;定义为私有的的声明放在接口声明的前面

#pragma once
#include <iostream>

class _message
{
private:
    typedef unsigned char uchar;
    typedef unsigned short ushort;

public:
    _message();

    ~_message();

    _message &init();

    const uchar *data() const;

    uchar *data();

    std::size_t length() const;

    const uchar *body() const;

    uchar *body();

    const uchar *body_without_format() const;

    uchar *body_without_format();

    std::size_t body_length() const;

    std::size_t body_length_without_format() const;

    void body_length(std::size_t new_length);

    void body_length_without_format(std::size_t new_length);

    bool decode_header();

    void encode_header();

    int get_err_code();

    template<typename T>
    _message& append(const T* _src, std::size_t _len);


private:
    static const int m_ihead_len = 2;
    static const int m_imax_body_len = 2046;
    static const int m_iformat_len = 8;
    uchar m_szdata[m_ihead_len + m_imax_body_len];
    std::size_t m_body_length;
    std::size_t m_off_set;
    static const char* const m_format_str;
};

 

posted @ 2019-11-22 13:48  N_zero  阅读(1868)  评论(0)    收藏  举报