锘?!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
鐩綍
杈撳叆鍜岃緭鍑烘搷浣滅
綆楁湳鎿嶄綔絎﹀拰鍏崇郴鎿嶄綔絎?/p>
涓嬫爣鎿嶄綔絎?/p>
鑷姞銆佽嚜鍑忔搷浣滅
鎴愬憳璁塊棶鎿嶄綔絎?/p>
1 杈撳叆鍜岃緭鍑烘搷浣滅
1.1 杈撳嚭鎿嶄綔絎?/strong>
1.1.1 紺轟緥
澶嶅埗浠g爜
#include <iostream>
#include <string>
using namespace std;
class A
{
friend ostream& operator<<(ostream& out, const A& a);
public:
A(const string &s = "", int v = 0) : ss(s), val(v) {} //鏋勯犲嚱鏁板甫榛樿鍙傛暟
private:
int val;
string ss;
};
ostream& operator<<(ostream& out, const A& a)
{
out << "a.ss:" << a.ss << " " << "a.val:" << a.val;
return out;
}
int main()
{
A a("hello", 23);
cout << a << endl;
A b;
cout << b << endl;
}
澶嶅埗浠g爜
緇撴灉
1.1.2 璇存槑
1錛塈O鎿嶄綔蹇呴』涓洪潪鎴愬憳鍑芥暟
鍘熷洜錛欼/O鎿嶄綔鐨勬帴鍙h繑鍥炵殑鏄痮stream&瀵硅薄錛堝彧鏈夎繑鍥炲乏鍊鹼紝榪欐牱鎵嶅彲浠ヨ繛緇殑杈撳嚭錛屼緥濡俢out << a << b錛夈傝嚜瀹氫箟鐨勮緭鍑烘搷浣滅搴旇涓庡叾鐩鎬技銆傚鏋滃皢鍏跺畾涔変負鎴愬憳鍑芥暟(鏈変釜棣栭粯璁ゅ弬鏁皌his錛屽嵆鎸囧悜鑷繁鐨勬寚閽?錛屽乏鎿嶄綔鏁板彧鑳芥槸璇ョ被鍨嬬殑瀵硅薄錛屽垯娌℃硶鍔炲埌銆備緥濡傦細Sales_item; item << cout; 涓庡父瑙勫畾涔夌浉鍙嶏紝鍥犳鍙兘涓洪潪鎴愬憳鍑芥暟銆?/p>
2錛夊洜涓鴻璁塊棶鎸囧畾綾葷殑縐佹湁鎴愬憳錛屾墍浠ュ湪璇ョ被涓0鏄庤緭鍑烘搷浣滅涓哄弸鍛樺嚱鏁般?/p>
3錛夌涓涓艦鍙傚繀欏諱負寮曠敤銆傚洜涓篒/O瀵硅薄涓嶅彲浠ュ鍒躲傚悓鐞嗚繑鍥炲煎繀欏諱負涓涓紩鐢ㄣ?/p>
4錛夌涓涓艦鍙備笉鍙互涓篶onst錛屽洜涓哄啓鍏ュ埌嫻佷細鏀瑰彉鍏跺箋?/p>
5錛夌浜屼釜涓哄紩鐢紝榪欐牱鍙互閬垮厤澶嶅埗銆傚弬鏁板彲浠ヤ負const錛屽彲浠ユ帴鏀禼onst瀵硅薄鍜岄潪const瀵硅薄錛涘惁鍒欙紝濡傛灉涓洪潪const錛屽垯鍙兘鎺ユ敹闈瀋oust瀵硅薄銆備竴鑸負const錛屾瘯绔熷彧鏄緭鍑鴻屽凡錛屼笉鏀瑰彉瀵硅薄銆?/p>
1.2 杈撳叆鎿嶄綔絎?/strong>
1.2.1 紺轟緥
澶嶅埗浠g爜
#include <iostream>
#include <string>
using namespace std;
class A
{
friend ostream& operator<<(ostream& out, const A& a);
friend istream& operator>>(istream& in, A& a);
public:
A(const string &s = "", int v = 0) : ss(s), val(v) {}
private:
int val;
string ss;
};
ostream& operator<<(ostream& out, const A& a)
{
out << "a.ss:" << a.ss << " " << "a.val:" << a.val;
return out;
}
istream& operator>>(istream& in, A& a)
{
in >> a.ss >> a.val;
if(in)
{
cout << "Input right" << endl;
}
else
{
cout << "in.fail:" << in.fail() << endl;
cout << "input wrong!" << endl;
}
return in;
}
int main()
{
A a("hello", 23);
cout << a << endl;
A b;
cin >> b;
cout << b << endl;