c_cpp 重载和变换
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 重载和变换相关的知识,希望对你有一定的参考价值。
#include <iostream>
#include <string.h>
#include <stdio.h>
//#include <stdlib.h>// itoa
using namespace std;
class MyString{
public:
MyString(char* str){
cout << "construct:" << str << endl;
strcpy( this-> str, str);
}
operator int(){// 对象变换为其他类型
int num;
sscanf(this-> str,"%d",&num);
cout << "to int:";
this->disp();
return num;
}
MyString& operator = (int num){ // 赋值给对象
char str[10];
sprintf(str,"%d",num);
strcpy(this-> str, str);
//strcpy( this-> str,itoa(num, str, 10));
return *this;
}
void disp(){
cout<< this-> str << endl;
}
private:
char str[10];
};
int main() {
// your code goes here
MyString s1 = MyString("s1");
s1.disp();
s1 = 22;
s1.disp();
s1 = 2 + s1; // 2 + (int) s;
s1.disp();
MyString s2 = MyString("s2");
s2 = s1;
s2.disp();
s2 = (int) s1;
s2.disp();
s2 = !s2;
s2.disp(); // to int :24 0
return 0;
}
以上是关于c_cpp 重载和变换的主要内容,如果未能解决你的问题,请参考以下文章
c_cpp CPP - 教程012 - 操作员重载和文件I / O.
c_cpp 函数重载
c_cpp 运算符重载
c_cpp C ++函数调用符重载
c_cpp 重载调用运算符C ++
c_cpp 带有重载运算符的模板