C++中将对象this转换成unsigned char指针

Posted simoncook

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++中将对象this转换成unsigned char指针相关的知识,希望对你有一定的参考价值。

示例程序


//  ---CodeBlob.h---
#ifndef CODEBLOB_H_
#define CODEBLOB_H_


class CodeBlob 
private:
  const char* _name;
  int        _size;

public:
    CodeBlob();
    void printName();
    void printSize();
    void setSize(int size);
    virtual ~CodeBlob();
;

#endif /* CODEBLOB_H_ */

//  ---CodeBlob.cpp---
#include <iostream>
#include "CodeBlob.h"

typedef unsigned char u_char;
typedef u_char*       address;

CodeBlob::CodeBlob() 
    _size = 5;
    _name = "hello";



CodeBlob::~CodeBlob() 


void CodeBlob::printName()
  std::cout << _name << std::endl;


void CodeBlob::printSize()
  std::cout << _size << std::endl;
  address aa = (address)this; // 这样写是没语法错误的
  std::cout << aa << std::endl;


void CodeBlob::setSize(int size)
    _size = size;



//  ---PointerConvert.cpp---

#include <iostream>
#include "CodeBlob.h"


int main(int argc, char **argv) 
    std::cout << "hello simon"<<std::endl;
    CodeBlob cb1;
    CodeBlob cb2;
    CodeBlob* cb3 = new CodeBlob();
    cb1.printName();
    cb1.setSize(100);
    cb1.printSize();
    cb2.printSize();
    cb3->setSize(20);
    cb3->printSize();
//  address a = (address)cb3;
//  std::cout << a <<std::endl;
    return 0;

此处是可以将对象this转换成unsigned char指针的。adress的值就是对象this的地址。

以上是关于C++中将对象this转换成unsigned char指针的主要内容,如果未能解决你的问题,请参考以下文章

C++ builder中如何把unsigned char类型转换成16进制的输出

C++怎么将 CString 转换成 unsigned char 的数组

如何在python中将unsigned char类型的int字符串转换为int

JAVA 与 C++ 数据类型转换 byte unsigned char

如何在 C++ 中将 unsigned char[] 打印为 HEX?

将 System::String^ 转换为 unsigned char*