전체 글(78)
-
앱 안의 버튼을 눌렀을 때, 특정한 일이 일어나게 하는 방법.
@앱 안의 버튼을 눌렀을 때, 특정한 일이 일어나게 하는 방법. 앱 안의 버튼 -> 위젯 누르다 -> 이벤트 발생 특정한 일-> 동작 = 위젯에 이벤트가 발생했을 때의 동작을 editing 하는법. @그 순서 1.위젯 변수 선언 2.변수에 activity_main.xml 파일의 위젯 id 대입 3.이벤트 발생 시 동작하는 클래스를 위젯에 정의 ->1. 위젯(버튼 등)의 이름을 선언 Button 날렵한버튼; ->2. 날렵한버튼에 activity_main.xml 파일에서 수정한 버튼의 위치의 identification을 연결시킴 그니까, xml 파일에서 그래픽적으로 만든 버튼을 main.java 파일에 알려준다. 대입이니 A=B 대입 연산자를 이용할것. 날렵한버튼 = (Button)findViewById(R..
2020.09.11 -
연산자 오버로드(operator overload)//ostream 나중에 채워넣기
@연산자 오버로드 클래스 변수(객체)를 이용하여 프로그램을 작성하다 보면 클래스 변수끼리 덧셈,뺄셈,곱셈 등의 연산이 수행되도록 해야 하는 경우가 발생한다. 그러나 일반 연산자를 사용하여 객체끼리 덧셈이나 뺄셈을 수행할수는 없다. C++에서는 기존의 연산자의 의미를 사용자가 임의로 변경하여 사용할 수 있도록 하는 연산자 오버로드(operator overload) 기능을 제공한다. 물론 +를 -로 기능하도록 바꾸고, *을 /로 바꾸는 그런 장난스러운 짓도 할 수 있겠지만, 본래 의미는 C++에서 기본적으로 제공하는 연산자의 기능을 특정 객체에 대해 동작하도록 사용자가 새로운 기능의 의미로 재정의 하는 것을 말한다. 따라서, 연산자를 오버로드해도 연산자가 가지고 있는 본래의 기능(의미)는 상실되지 않도록 해..
2020.09.10 -
friend 함수
@프렌드함수 프렌드(friend) 함수는 클래스의 멤버 함수가 아니면서 클래스의 전용(private) 데이터 멤버에 접근할 때 사용하는 함수이다. 이때, 클래스의 멤버 함수가 아니라면, 일반 함수 또는 다른 클래스의 멤버 함수가 될 수 있겠다. 일반 함수 또는 다른 클래의 멤버함수 (외부함수)가 특정 클래스의 전용 데이터 멤버를 참조해야 하는 경우가 생겼을때, 외부 함수를 특정 클래스의 프렌드 함수로 선언하면 해당 클래스의 전용 데이터 멤버들을 참조할 수 있다. 프렌드 함수를 사용하기 위해서는 클래스의 프렌드로 사용할 함수의 원형을 클래스 내부에 선언하고 그 앞에 예약어 friend를 붙인다. @드는 생각 private 데이터멤버에 접근할 수 있는자는 누가 있을까? 바로 멤버함수밖에 없다.따라서 해당 멤..
2020.09.10 -
오버로딩과 다형성 (오버로딩은 그냥 다른 datatype 지원 그 자체다.)
@오버로딩 overloading. 과다적재.라는 뜻이다. 하지만 C++ 에선 중복적재라고 이해해야 한다. 객체지향적 프로그래밍에서 중요한 게 뭐라고? 바로 다형성(polymorphism)이다. 다형성 : 프로그램 언어의 각 요소들이 다양한 자료형에 속하는 것이 허가되는 성질을 가리킨다. 중복적재가 무엇인지 알아보고 이것이 왜 다형성에 부합하는지 알아보자. @코드 void point(int x,int y) { cout
2020.09.10 -
왜 포인터를 안쓰지
왜 안쓸까, 일단 무작정 쓰려고 해선 안된다. 생각을 해보자 포인터를 쓰려면 일단 그것의 실제data가 존재하는 주소를 우리는 연결해준다. 이게 무슨뜻이냐, 실제data가 존재하지 않으면 그것에 대응되는 주소도 없다. 뭔 생각을 했던거지 @@추가 20200910 @메모리 접근의 장점(PASS BY REFERENCE의 장점) 1. 메모리 절약 2. 함수의 근본적 한계 극복 (함수는 반드시 하나의 변수만 출력 할 수 있다.)
2020.09.10 -
this 포인터
@느낌 멤버함수 내부에만 작성하게 될것이다. no 프렌드함수 @this 포인터 멤버 함수 내에서 클래스의 데이터 멤버들을 참조하는 경우에 직접 참조가 가능하기 때문에 객체명을 지정하거나 도트 연산자를 사용할 필요가 없었다. 하지만 연산자 오버로딩에서 중요하니까 알아야한다. 다음 예시를 보자. class vector { private: int vector[2] public: int inner(vector b) { return vector[0]*b.vector[0] +vector[1]*b.vector[1]; } } int main() { vector a,b; cout 가 의미 있는것이 아니다.
2020.09.10