Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Clark Lin
StudyCpp
Commits
62e0e58d
Commit
62e0e58d
authored
Nov 21, 2022
by
Clark Lin
Browse files
add this pointer
parent
e2de3e3f
Changes
1
Hide whitespace changes
Inline
Side-by-side
02.OOP/ThisPointer.cpp
0 → 100644
View file @
62e0e58d
#include <iostream>
using
namespace
std
;
class
Box
{
public:
// 构造函数定义
Box
(
double
l
,
double
b
,
double
h
)
{
cout
<<
"Constructor called."
<<
endl
;
// 每一个对象都能通过 this 指针来访问自己的地址。
// this 指针是所有成员函数的隐含参数。
// 因此,在成员函数内部,它可以用来指向调用对象。
// 只有成员函数或者成员变量才有 this 指针。
this
->
length
=
l
;
this
->
breadth
=
b
;
this
->
height
=
h
;
}
double
Volume
()
{
return
length
*
breadth
*
height
;
}
int
compare
(
Box
box
)
{
// 每一个对象都能通过 this 指针来访问自己的地址。
// this 指针是所有成员函数的隐含参数。
// 因此,在成员函数内部,它可以用来指向调用对象。
// 只有成员函数或者成员变量才有 this 指针。
return
this
->
Volume
()
>
box
.
Volume
();
}
private:
double
length
;
// Length of a box
double
breadth
;
// Breadth of a box
double
height
;
// Height of a box
};
int
main
(
void
)
{
Box
Box1
(
3.3
,
1.2
,
1.5
);
// Declare box1
Box
Box2
(
8.5
,
6.0
,
2.0
);
// Declare box2
if
(
Box1
.
compare
(
Box2
))
{
cout
<<
"Box2 is smaller than Box1"
<<
endl
;
}
else
{
cout
<<
"Box2 is equal to or larger than Box1"
<<
endl
;
}
return
0
;
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment