Deck 8: Operator Overloading,friends,and References

ملء الشاشة (f)
exit full mode
سؤال
You can change the behavior of + for the int type using operator overloading.
استخدم زر المسافة أو
up arrow
down arrow
لقلب البطاقة.
سؤال
Overloading an operator cannot change the precedence of that operator with respect to other operators.
سؤال
When overloading an operator,you can create a new operator different from the more usual operators.
سؤال
Overloading a binary operator as a member requires two arguments.
سؤال
A friend function has access only to the private members and member functions of the class (and all objects of that class)of which it is a friend.
سؤال
Overloaded operator <<,when used as an output,returns an ostream& to allow chains of output statements,and similarly the overloaded operator >> returns an istream&
سؤال
Consider this operator overloading for class Money,modified from Display 8.1 by omitting the const modifier on the return type:
Money operator+(const Money& amt1,const Money& amt2);
Is the following expression legal? If legal,what could it mean,and where does the information that is assigned go?
Money m1(17.99),m2(23.57)m3(15,22);
(m1 + m2)= m3;
سؤال
When overloading an operator,you can change the behavior of the operator,making + do things that feel like multiplication,but this is unwise.
سؤال
An overloaded operator[] must be a non-static class member.
سؤال
If a unary operator is overloaded as a stand-alone function,the argument may be any type.
سؤال
An operator overloading is essentially a function that uses a different syntax for invocation.
سؤال
It is impossible to get short-circuit behavior for overloaded operator && or operator ||
سؤال
The operator prefix operator ++ is an l-value,and the text asserts that we should emulate this with operator overloads by returning a reference from prefix versions of operator++.
سؤال
When overloading an operator,you cannot change the number of arguments an operator takes.
سؤال
Overloading a binary operator as a stand-alone function requires two arguments.
سؤال
A class can have friends that are functions as well as friend classes.
سؤال
When an operator is overloaded as a member of a class,the first parameter listed in parentheses,is the calling object.
سؤال
C++ allows overloading of the function application operator ( ).Explain.
سؤال
An overloaded operator= function must be a non-static class member.
سؤال
One can guarantee left to right evaluation of the arguments to a comma expression overloading.
سؤال
Given the class definition:
class A
{
public:
//constructors
// other members
private:
int x;
int y;
};
Give declarations of operator functions for each of the following ways to overload operator + You must state where the declaration goes,whether within the class in the public or private section or outside the class.The operator + may be overloaded
a)as friend function
b)as member function
c)as non-friend,non-member function
سؤال
Why have we not needed to overload the assignment operator so far?
سؤال
Which operators cannot be overloaded?
سؤال
If I need to build an object for return from a function,I can construct that function directly in the return statement.
سؤال
Show how to overload the operators << and >> to create stream output for this class.
Make these functions friends of the class Pair.The expected form of a pair is (2,3)for both input and output.To make this problem manageable,you should only provide to accept and discard the parentheses and comma,but you should not check that these particular characters were typed.Output should be the expected form.
class IntPair
{
int first;
int second;
public:
IntPair(int firstValue,int secondValue);
int getFirst( )const;
int getSecond( )const;
};
سؤال
Which operators can be overloaded only as non-static class members?
سؤال
Explain the similarities and differences between (binary)operators such as +,*,-,/ and a function.
سؤال
What do you need to add to the class definition to overload operator < so that it applies to the type Money from Display 8.1? Given this extract from the class Money from Display 8.1 of the text.
class Money
{
public:
Money( );
// other constructors
// other public members
int getCents( )const;
int getDollars( )const;
private:
int dollars;
int cents;
// other private members
};
سؤال
What are some reasons for using friend operator overloading?
سؤال
What objections to the use of friend functions and classes do some experts give?
سؤال
Consider the class definition:
class IntPair
{
int first;
int second;
public:
IntPair(int firstValue,int secondValue);
// prefix operator++ here
// postfix operator ++ here
int getFirst( )const;
int getSecond( )const;
};
a)Give declarations for prefix and postfix versions of operator++
b)Give definitions for prefix and postfix versions of operator++
فتح الحزمة
قم بالتسجيل لفتح البطاقات في هذه المجموعة!
Unlock Deck
Unlock Deck
1/31
auto play flashcards
العب
simple tutorial
ملء الشاشة (f)
exit full mode
Deck 8: Operator Overloading,friends,and References
1
You can change the behavior of + for the int type using operator overloading.
False
2
Overloading an operator cannot change the precedence of that operator with respect to other operators.
True
3
When overloading an operator,you can create a new operator different from the more usual operators.
False
4
Overloading a binary operator as a member requires two arguments.
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
5
A friend function has access only to the private members and member functions of the class (and all objects of that class)of which it is a friend.
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
6
Overloaded operator <<,when used as an output,returns an ostream& to allow chains of output statements,and similarly the overloaded operator >> returns an istream&
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
7
Consider this operator overloading for class Money,modified from Display 8.1 by omitting the const modifier on the return type:
Money operator+(const Money& amt1,const Money& amt2);
Is the following expression legal? If legal,what could it mean,and where does the information that is assigned go?
Money m1(17.99),m2(23.57)m3(15,22);
(m1 + m2)= m3;
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
8
When overloading an operator,you can change the behavior of the operator,making + do things that feel like multiplication,but this is unwise.
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
9
An overloaded operator[] must be a non-static class member.
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
10
If a unary operator is overloaded as a stand-alone function,the argument may be any type.
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
11
An operator overloading is essentially a function that uses a different syntax for invocation.
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
12
It is impossible to get short-circuit behavior for overloaded operator && or operator ||
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
13
The operator prefix operator ++ is an l-value,and the text asserts that we should emulate this with operator overloads by returning a reference from prefix versions of operator++.
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
14
When overloading an operator,you cannot change the number of arguments an operator takes.
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
15
Overloading a binary operator as a stand-alone function requires two arguments.
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
16
A class can have friends that are functions as well as friend classes.
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
17
When an operator is overloaded as a member of a class,the first parameter listed in parentheses,is the calling object.
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
18
C++ allows overloading of the function application operator ( ).Explain.
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
19
An overloaded operator= function must be a non-static class member.
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
20
One can guarantee left to right evaluation of the arguments to a comma expression overloading.
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
21
Given the class definition:
class A
{
public:
//constructors
// other members
private:
int x;
int y;
};
Give declarations of operator functions for each of the following ways to overload operator + You must state where the declaration goes,whether within the class in the public or private section or outside the class.The operator + may be overloaded
a)as friend function
b)as member function
c)as non-friend,non-member function
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
22
Why have we not needed to overload the assignment operator so far?
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
23
Which operators cannot be overloaded?
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
24
If I need to build an object for return from a function,I can construct that function directly in the return statement.
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
25
Show how to overload the operators << and >> to create stream output for this class.
Make these functions friends of the class Pair.The expected form of a pair is (2,3)for both input and output.To make this problem manageable,you should only provide to accept and discard the parentheses and comma,but you should not check that these particular characters were typed.Output should be the expected form.
class IntPair
{
int first;
int second;
public:
IntPair(int firstValue,int secondValue);
int getFirst( )const;
int getSecond( )const;
};
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
26
Which operators can be overloaded only as non-static class members?
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
27
Explain the similarities and differences between (binary)operators such as +,*,-,/ and a function.
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
28
What do you need to add to the class definition to overload operator < so that it applies to the type Money from Display 8.1? Given this extract from the class Money from Display 8.1 of the text.
class Money
{
public:
Money( );
// other constructors
// other public members
int getCents( )const;
int getDollars( )const;
private:
int dollars;
int cents;
// other private members
};
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
29
What are some reasons for using friend operator overloading?
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
30
What objections to the use of friend functions and classes do some experts give?
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
31
Consider the class definition:
class IntPair
{
int first;
int second;
public:
IntPair(int firstValue,int secondValue);
// prefix operator++ here
// postfix operator ++ here
int getFirst( )const;
int getSecond( )const;
};
a)Give declarations for prefix and postfix versions of operator++
b)Give definitions for prefix and postfix versions of operator++
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.
فتح الحزمة
k this deck
locked card icon
فتح الحزمة
افتح القفل للوصول البطاقات البالغ عددها 31 في هذه المجموعة.