VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1753|回复: 11

c++里面有类似java里面的toString,equals之类的方法吗?

[复制链接]

1

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-2-23 02:00:01 | 显示全部楼层 |阅读模式
提3个大问题:

1,c++是否有toString,equals等?
2,c++有orm框架吗?有类java里面的spring框架吗?
3,标准C++语法里面有序列化之说吗?如何使用呀?序列化到文件采用的格式是什么样的?
回复

使用道具 举报

0

主题

55

帖子

44.00

积分

新手上路

Rank: 1

积分
44.00
发表于 2020-5-4 19:00:01 | 显示全部楼层
C++不是java。
回复

使用道具 举报

0

主题

14

帖子

15.00

积分

新手上路

Rank: 1

积分
15.00
发表于 2020-5-5 01:30:01 | 显示全部楼层
1、
struct object
{
virtual string toString();
};

struct car : public object
{
virtual string toString() { return "car"; }
bool operator ==(const car&);
};

2、
没听说过

3、
没有,MFC中有,可以参考。标准C++可以重载ostream<<和istream>>来实现类似功能。
回复

使用道具 举报

0

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-5-6 02:00:02 | 显示全部楼层
楼上的,LZ说的tostring的意思是。
int i = 1;
i.tostring() // "1"

在java中每个数据类型都是类的形式存在。
自己实现一个方法就可以啦!
回复

使用道具 举报

0

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-5-7 13:30:02 | 显示全部楼层
可以这样做。
char szBuff[128] = {0};
sprintf( szBuff, "%s%n%c", "HI", 2, 'c' );

int i = 1;
sprintf( szBuff, "%n", i ); // "1"
这样勉强就可以实现跟java的tostring一样的效果!
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-5-9 18:00:01 | 显示全部楼层
自己写ostream& operater<<(ostream& o,[object]& obj);

然后
stringstream sstrm;
sstrm<<obj;
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-5-10 01:15:01 | 显示全部楼层
equals等价于operator==
标准库没有规定序列化格式
C++的ORM框架没见过,因为C++缺乏反射机制,实现起来很复杂,我曾经尝试过,没有反射机制确实很难做到易用,最后放弃了
回复

使用道具 举报

0

主题

78

帖子

29.00

积分

新手上路

Rank: 1

积分
29.00
发表于 2020-5-11 17:15:01 | 显示全部楼层
toString 可以用 stingstream 实现,
或者使用 C 中 sprintf ,
或者其他方式, 比如 itoa 等

比如:
    ostringstream os;
    os<<100<<endl;   
    string str = os.str();   //得到 string
    cout<<str<<endl;
回复

使用道具 举报

0

主题

78

帖子

29.00

积分

新手上路

Rank: 1

积分
29.00
发表于 2020-5-11 18:30:01 | 显示全部楼层
equals 是有的:

#include <string>
  bool operator==(const string& c1, const string& c2);
回复

使用道具 举报

0

主题

78

帖子

29.00

积分

新手上路

Rank: 1

积分
29.00
发表于 2020-5-11 19:15:01 | 显示全部楼层
#include <string>
  bool operator==(const string& c1, const string& c2);
  bool operator!=(const string& c1, const string& c2);
  bool operator<(const string& c1, const string& c2);
  bool operator>(const string& c1, const string& c2);
  bool operator<=(const string& c1, const string& c2);
  bool operator>=(const string& c1, const string& c2);
  string operator+(const string& s1, const string& s2 );
  string operator+(const char* s, const string& s2 );
  string operator+( char c, const string& s2 );
  string operator+( const string& s1, const char* s );
  string operator+( const string& s1, char c );
  ostream& operator<<( ostream& os, const string& s );
  istream& operator>>( istream& is, string& s );
  string& operator=( const string& s );
  string& operator=( const char* s );
  string& operator=( char ch );
  char& operator[]( size_type index );
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表