티스토리 뷰

c++

C++ this,string 객체,string 배열

삼전동해커 2020. 7. 6. 16:05

□객체의 동적 생성 및 반환

클래스이름 *포인터변수 = new  클래스이름;
클래스이름 *포인터변수 = new 클래스이름(생성자매개변수리스트);
delete 포인터변수;

Circle *p = new Circle;
Circle *q = new Circle(30);

delete p;
delete q;

 

□객체 배열의 동적 생성 및 반환

클래스이름 *포인터변수 = new 클래스이름[배열크기];
delete [] 포인터변수 ;

Circle *pArray = new Circle[3];  //3개의 Circle 객체 배열의 동적 생성
pArray[0].setRadius(10);  //pArray->setRadius(10); 으로도 표현가능
pArray[1].setRadius(10);  //(pArray+1)->setRadius(10);
pArray[2].setRadius(10);  //(pArray+2)->setRadius(10);

delete []pArray;

□this 포인터

-포인터,객체 자신 포인터

-클래스의 멤버 함수 내에서만 사용

class Circle{
	int radius;
public:
	Circle(){this->radius=1;}
    Circle(int radius){this->radius = radius;}
    void setRadius(int radius{this->tadius = radius;}
 ...
 };
 
 int main(){
 	Circle c1;
    Circle c2(2);
    Circle c3(3);
    
    c1.setRadius(4); //radius=4로 변경
    c2.setRadius(5); //radius=5로 변경
    c3.setRadius(6); //radius=6으로 변경
    

□this가 필요한 경우

1.매개변수의 이름과 멤버 변수의 이름이 같은 경우2.멤버 함수가 객체 자신의 주소를 리턴할 때

 

this의 제약사항-멤버함수가 아닌 함수에서 this 사용 불가-static 멤버 함수에서 this 사용 불가

 

□string 클래스를 이용한 문자열

#include<string>
using namespace std;

-가변 크기의 문자열

-다양한 문자열 연산을 실행하는 연산자와 멤버 함수 포함

-문자열,스트링,문자열 객체,string 객체 등으로 혼용

 

□string 객체의 동적 생성

new/delete를 이용하여 문자열을 동적 생성/반환 가능

string *p = new string("c++"); //string 객체 동적 생성
 
cout << *p; // c++ 출력
p->append("Great"); //*p뒤에 Great을 추가 해 p가 가리키는 주소의 값은 c++ Great이 된다.
cout <<*p; //c++ Great 출력

delete p;

'c++' 카테고리의 다른 글

C++ filesystem 사용  (0) 2022.03.15
STL vector 컨테이너  (0) 2021.02.21
C++ 객체포인터,객체 배열, 동적 할당  (0) 2020.07.03
C++ 소멸자,접근 지정자, 인라인 함수,구조체  (0) 2020.07.02
C++ 클래스와 객체,생성자  (0) 2020.07.01
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함