클래스의 구조 함수와 분석 함수 상해
3890 단어 면접 문제
1:류의 구조 함수
1. 구조 함수 정의 클래스의 구조 함수는 클래스의 특수한 구성원 함수로 클래스의 새로운 대상을 만들 때마다 실행된다.구조 함수의 명칭은 클래스의 명칭과 완전히 같으며, 어떤 종류도 되돌려주지 않으며,void도 되돌려주지 않습니다.구조 함수는 일부 구성원 변수의 초기 값을 설정하는 데 사용할 수 있습니다.구조 함수는 주로 대상을 위해 공간을 분배하고 초기화하는 데 쓰인다.2. 성질(1) 구조 함수의 이름은 클래스 이름과 같아야 한다(2) 구조 함수는 임의의 유형의 매개 변수가 있을 수 있지만 되돌아오는 유형을 지정할 수 없다.시스템 내부에서 사용되는 은밀한 반환 값이 있습니다.(3) 구조 함수는 특수한 구성원 함수로 함수체는 클래스 안에 쓸 수도 있고 클래스 밖에 쓸 수도 있다.(4) 구조 함수는 한 클래스에서 여러 개의 매개 변수의 개수나 매개 변수의 유형이 다른 구조 함수를 정의할 수 있다.(5) 구조 함수는 공유 함수로 성명되지만 다른 구성원 함수처럼 현저하게 호출될 수 없고 대상을 정의하는 동시에 호출된다. 3.인스턴스#include
using namespace std;
class Line
{
public:
void setLength( double len );
double getLength( void );
Line(); //
private:
double length;
};
// ,
Line::Line(void)
{
cout << "Object is being created" << endl;
}
void Line::setLength( double len )
{
length = len;
}
double Line::getLength( void )
{
return length;
}
//
int main( )
{
Line line;
//
line.setLength(6.0);
cout << "Length of line : " << line.getLength() <
위의 코드가 컴파일되고 실행되면 다음과 같은 결과가 발생합니다.Object is being created
Length of line : 6
파라미터를 가진 구조 함수 기본 구조 함수는 아무런 파라미터도 없지만 필요하면 구조 함수도 파라미터를 가지고 있을 수 있습니다.이렇게 하면 객체를 작성할 때 객체에 초기 값이 지정됩니다. 다음 예와 같습니다.#include
using namespace std;
class Line
{
public:
void setLength( double len );
double getLength( void );
Line(double len); //
private:
double length;
};
// ,
Line::Line( double len)
{
cout << "Object is being created, length = " << len << endl;
length = len;
}
void Line::setLength( double len )
{
length = len;
}
double Line::getLength( void )
{
return length;
}
//
int main( )
{
Line line(10.0);
//
cout << "Length of line : " << line.getLength() <
위의 코드가 컴파일되고 실행되면 다음과 같은 결과가 발생합니다.Object is being created, length = 10
Length of line : 10
Length of line : 6
초기화 목록을 사용하여 필드 초기화 Line::Line( double len): length(len)
{
cout << "Object is being created, length = " << len << endl;
}
:
Line::Line( double len)
{
length = len;
cout << "Object is being created, length = " << len << endl;
}
C, X、Y、Z , , , , :
C::C( double a, double b, double c): X(a), Y(b), Z(c)
{
....
}
2:류의 분석 함수
1. 분석 함수의 정의 클래스의 분석 함수는 클래스의 특수한 구성원 함수로 생성된 대상을 삭제할 때마다 실행된다.분석 함수의 명칭은 클래스의 명칭과 완전히 같다. 단지 앞에 파도호 (~) 를 접두사로 붙였을 뿐, 어떤 값도 되돌려주지 않고, 어떤 인자도 가지고 있지 않다.분석 함수는 프로그램 (예를 들어 파일 닫기, 메모리 방출 등) 에서 벗어나기 전에 자원을 방출하는 데 도움이 된다.
2. 성질(1) 분석 함수는 구조 함수와 이름이 같지만 앞에 파도호(~)를 붙여야 한다.(2) 분석 함수는 매개 변수도 없고 되돌아오는 값도 없고 다시 불러올 수 없다.따라서 한 클래스에 하나의 분석 함수만 있을 수 있다.(3) 대상을 취소할 때 컴파일링 시스템은 자동으로 분석 함수를 호출한다.3. 실례#include
using namespace std;
class Line
{
public:
void setLength( double len );
double getLength( void );
Line(); //
~Line(); //
private:
double length;
};
// ,
Line::Line(void)
{
cout << "Object is being created" << endl;
}
Line::~Line(void)
{
cout << "Object is being deleted" << endl;
}
void Line::setLength( double len )
{
length = len;
}
double Line::getLength( void )
{
return length;
}
//
int main( )
{
Line line;
//
line.setLength(6.0);
cout << "Length of line : " << line.getLength() <
위의 코드가 컴파일되고 실행되면 다음과 같은 결과가 발생합니다.Object is being created
Length of line : 6
Object is being deleted
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 프로그래머 면접에서의 다중 스레드 문제 요약
wait ()/notify ()/notify All () 의 모든 방법을 호출할 때, 현재 라인이 이 대상의 자물쇠를 얻지 못하면, Illegal MonitorState Exception의 이상을 던집니다.
Thre...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
#include
using namespace std;
class Line
{
public:
void setLength( double len );
double getLength( void );
Line(); //
private:
double length;
};
// ,
Line::Line(void)
{
cout << "Object is being created" << endl;
}
void Line::setLength( double len )
{
length = len;
}
double Line::getLength( void )
{
return length;
}
//
int main( )
{
Line line;
//
line.setLength(6.0);
cout << "Length of line : " << line.getLength() <
Object is being created
Length of line : 6
#include
using namespace std;
class Line
{
public:
void setLength( double len );
double getLength( void );
Line(double len); //
private:
double length;
};
// ,
Line::Line( double len)
{
cout << "Object is being created, length = " << len << endl;
length = len;
}
void Line::setLength( double len )
{
length = len;
}
double Line::getLength( void )
{
return length;
}
//
int main( )
{
Line line(10.0);
//
cout << "Length of line : " << line.getLength() <
Object is being created, length = 10
Length of line : 10
Length of line : 6
Line::Line( double len): length(len)
{
cout << "Object is being created, length = " << len << endl;
}
:
Line::Line( double len)
{
length = len;
cout << "Object is being created, length = " << len << endl;
}
C, X、Y、Z , , , , :
C::C( double a, double b, double c): X(a), Y(b), Z(c)
{
....
}
2:류의 분석 함수
1. 분석 함수의 정의 클래스의 분석 함수는 클래스의 특수한 구성원 함수로 생성된 대상을 삭제할 때마다 실행된다.분석 함수의 명칭은 클래스의 명칭과 완전히 같다. 단지 앞에 파도호 (~) 를 접두사로 붙였을 뿐, 어떤 값도 되돌려주지 않고, 어떤 인자도 가지고 있지 않다.분석 함수는 프로그램 (예를 들어 파일 닫기, 메모리 방출 등) 에서 벗어나기 전에 자원을 방출하는 데 도움이 된다.
2. 성질(1) 분석 함수는 구조 함수와 이름이 같지만 앞에 파도호(~)를 붙여야 한다.(2) 분석 함수는 매개 변수도 없고 되돌아오는 값도 없고 다시 불러올 수 없다.따라서 한 클래스에 하나의 분석 함수만 있을 수 있다.(3) 대상을 취소할 때 컴파일링 시스템은 자동으로 분석 함수를 호출한다.3. 실례#include
using namespace std;
class Line
{
public:
void setLength( double len );
double getLength( void );
Line(); //
~Line(); //
private:
double length;
};
// ,
Line::Line(void)
{
cout << "Object is being created" << endl;
}
Line::~Line(void)
{
cout << "Object is being deleted" << endl;
}
void Line::setLength( double len )
{
length = len;
}
double Line::getLength( void )
{
return length;
}
//
int main( )
{
Line line;
//
line.setLength(6.0);
cout << "Length of line : " << line.getLength() <
위의 코드가 컴파일되고 실행되면 다음과 같은 결과가 발생합니다.Object is being created
Length of line : 6
Object is being deleted
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 프로그래머 면접에서의 다중 스레드 문제 요약
wait ()/notify ()/notify All () 의 모든 방법을 호출할 때, 현재 라인이 이 대상의 자물쇠를 얻지 못하면, Illegal MonitorState Exception의 이상을 던집니다.
Thre...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
#include
using namespace std;
class Line
{
public:
void setLength( double len );
double getLength( void );
Line(); //
~Line(); //
private:
double length;
};
// ,
Line::Line(void)
{
cout << "Object is being created" << endl;
}
Line::~Line(void)
{
cout << "Object is being deleted" << endl;
}
void Line::setLength( double len )
{
length = len;
}
double Line::getLength( void )
{
return length;
}
//
int main( )
{
Line line;
//
line.setLength(6.0);
cout << "Length of line : " << line.getLength() <
Object is being created
Length of line : 6
Object is being deleted
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Java 프로그래머 면접에서의 다중 스레드 문제 요약wait ()/notify ()/notify All () 의 모든 방법을 호출할 때, 현재 라인이 이 대상의 자물쇠를 얻지 못하면, Illegal MonitorState Exception의 이상을 던집니다. Thre...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.