change qmake version

change qmake version 
$ export QTDIR=/qtdir/Qt/5.7/gcc_64
$ export PATH=$QTDIR/bin:$PATH
$ export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

/qtdir = installed qt path

 qmake --version

[VMware workstation] solution - disable intall vmware tools (ubuntu)

[VMware workstation] solution - disable intall vmware tools (ubuntu)

1. open terminal$sudo apt-get install open-vm-tools-desktop


2. restart vmware

C Language - extern ?

Extern
- The extern keyword declares a variable or function and specifies that it has external linkage.

C++ Shift operator(KO)

Shift operator- cout, cin 쓸때 앞이나 뒤에 붙이는 연산자
- 표준 라이브러리에 std라는 namespace에 cout이나 cin에 관련된 클래스(istream, ostream)
- C++에서는 쉬프트 연산자도 연산자 오버로딩이 가능


Shift operator overloading
-----------------------------
int main()
{
    VALUE val(2,3); 
    std::cout << val;
    return 0;
}


1. VALUE class show x and y value.
2. create val Object. after, std::cout print val .

Error : 
cout : - possible normal data type printing
         - impossible object of user type

-표준 std의 ostream 클래스에서도 쉬프트 연산에 대한 오버로딩이 정의 되어 있지 않음
따라서,  표준 라이브러리로 객체를 출력하는 일 불가능

-> Solution
overloading of member fucntion

cout is cout.operator

cout.operator<< (val)


val 객체 인자값을 받을 수 있도록 cout 객체에는 operator<< 연산자를 오버로딩 시키면 가능


class VALUE{  

private:  
    int iX;
    int iY;  
public:  
    VALUE(int x=0, int y=0):iX(x), iY(y){}  
    friend ostream& operator<<(ostream& os, const VALUE& val);  
};  
  
ostream& operator<<(ostream& os, const VALUE& val)  
{  
    os<<"["<<val.iX<<", "<<val.iY<<"]"<<endl;   

    return os;  
}  
  
int main(void)  
{  
    VALUE val(2, 3);  
    std::cout<<val;  
    return 0; 
}

member func overloading : CHANGE std::cout<<val; to operator(std::cout, VALUE); 

NO logical problem. 

Apartment Buying Guide 2025: Shocking Red Flags You Should NEVER Ignore!

 🏙️ Apartment Buying Guide 2025: Shocking Red Flags You Should NEVER Ignore! 🚨 Are you thinking about buying an apartment in 2025? 🏢  It’...