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
faae3e40
Commit
faae3e40
authored
Nov 21, 2022
by
Administrator
Browse files
add overload function and overload operator
parent
619cf7f2
Changes
2
Show whitespace changes
Inline
Side-by-side
02.OOP/OverloadFunc.cpp
0 → 100644
View file @
faae3e40
#include <iostream>
using
namespace
std
;
class
printData
{
public:
// 重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明
// 但是它们的参数列表和定义(实现)不相同。
// 当您调用一个重载函数或重载运算符时,编译器通过把您所使用的参数类型与定义中的参数类型进行比较,决定选用最合适的定义。
// 选择最合适的重载函数或重载运算符的过程,称为重载决策。
void
print
(
int
i
)
{
cout
<<
"Printing int: "
<<
i
<<
endl
;
}
void
print
(
double
f
)
{
cout
<<
"Printing float: "
<<
f
<<
endl
;
}
void
print
(
string
c
)
{
cout
<<
"Printing character: "
<<
c
<<
endl
;
}
};
int
main
(
void
)
{
printData
pd
;
// Call print to print integer
pd
.
print
(
5
);
// Call print to print float
pd
.
print
(
500.263
);
// Call print to print character
pd
.
print
(
"Hello C++"
);
return
0
;
}
\ No newline at end of file
02.OOP/OverloadOperator.cpp
0 → 100644
View file @
faae3e40
#include <iostream>
using
namespace
std
;
class
Box
{
public:
double
getVolume
(
void
)
{
return
length
*
breadth
*
height
;
}
void
setLength
(
double
len
)
{
length
=
len
;
}
void
setBreadth
(
double
bre
)
{
breadth
=
bre
;
}
void
setHeight
(
double
hei
)
{
height
=
hei
;
}
// 重载的运算符是带有特殊名称的函数,函数名是由关键字 operator 和其后要重载的运算符符号构成的。
// 与其他函数一样,重载运算符有一个返回类型和一个参数列表。
// 重载 + 运算符,用于把两个 Box 对象相加
Box
operator
+
(
const
Box
&
b
){
Box
box
;
box
.
length
=
this
->
length
+
b
.
length
;
box
.
breadth
=
this
->
breadth
+
b
.
breadth
;
box
.
height
=
this
->
height
+
b
.
height
;
return
box
;
}
private:
double
length
;
// 长度
double
breadth
;
// 宽度
double
height
;
// 高度
};
// 程序的主函数
int
main
()
{
Box
Box1
;
// 声明 Box1,类型为 Box
Box
Box2
;
// 声明 Box2,类型为 Box
Box
Box3
;
// 声明 Box3,类型为 Box
double
volume
=
0.0
;
// 把体积存储在该变量中
// Box1 详述
Box1
.
setLength
(
6.0
);
Box1
.
setBreadth
(
7.0
);
Box1
.
setHeight
(
5.0
);
// Box2 详述
Box2
.
setLength
(
12.0
);
Box2
.
setBreadth
(
13.0
);
Box2
.
setHeight
(
10.0
);
// Box1 的体积
volume
=
Box1
.
getVolume
();
cout
<<
"Volume of Box1 : "
<<
volume
<<
endl
;
// Box2 的体积
volume
=
Box2
.
getVolume
();
cout
<<
"Volume of Box2 : "
<<
volume
<<
endl
;
// 把两个对象相加,得到 Box3
Box3
=
Box1
+
Box2
;
// Box3 的体积
volume
=
Box3
.
getVolume
();
cout
<<
"Volume of Box3 : "
<<
volume
<<
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