开发者

read/write function definiton

开发者 https://www.devze.com 2023-02-27 03:55 出处:网络
how would you write these functions: bool writesomething(const Something& something);开发者_开发知识库

how would you write these functions:

bool writesomething(const Something& something);开发者_开发知识库
//or
bool writesomething(int somethingid, const Something& something);

bool readsomething(const Something& something);
//or
bool readsomething(int somethingid, Something& something);

notice that Something has a public field named id


That depends on the structure of Something. But as a general design principle, your classes should be persistence ignorant when possible.

That being said, if you want to be able to (de)serialize your objects, I would model your I/O methods on the built-in I/O streams library interfaces. Then your objects will support I/O to/from the console, files, anything else that inherits from istream or ostream.

In addition to maintaining a consistent interface with the standard library (and tons of third-party-code), adapting the I/O streams interface also makes it easier to write your method. If Something has an int 'id' and a string 'name' member:

ostream& operator << (ostream& os, const Something& thing)
{
    os << thing.id;
    os << thing.name;
    return os;
}

If the members of Something are more complex you implement operator << and >> for those types, and so on down the chain.

0

精彩评论

暂无评论...
验证码 换一张
取 消