Friend functions and classes in C++ (Programming for beginners)
ฝัง
- เผยแพร่เมื่อ 8 มิ.ย. 2024
- 📚 Learn how to solve problems and build projects with these Free E-Books ⬇️
C++ Lambdas e-book - free download here: bit.ly/freeCppE-Book
Entire Object-Pascal step-by-step guide - free download here: bit.ly/FreeObjectPascalEbook
🚀📈💻🔥 My Practical Programming Course: www.codebeautyacademy.com/
Experience the power of practical learning, gain career-ready skills, and start building real applications!
This is a step-by-step course designed to take you from beginner to expert in no time!
💰 Here is a coupon to save 10% on your first payment (CODEBEAUTY_YT10).
Use it quickly, because it will be available for a limited time.
👉 Download Visual Assist here: bit.ly/VisualAssistDownload
(Improves Visual Studio experience by quickly identifying and fixing code errors)
In programming, like in real life, exists the concept of friendship. In the same way that your friends in real life can access private areas of your life (that are inaccessible to other people), in programming, a friend function or a friend class can access private and protected members of a specific class.
In this video, you'll learn how to work with friend functions and classes, friend functions and classes common uses, as well as the most important tips related to friend functions and friend classes.
And at the end, you can find a homework task in order to practice programming on your own.
The solution for that task will be pinned in the comment.
☕ If you've found my content helpful and would like to support me, you now have the option to buy me a coffee or a cookie! It's a small gesture of gratitude that means a lot to me and helps me keep creating free educational videos for you. You can use the link below to make a contribution: bit.ly/CodeBeauty_BuyMeACoffee
However, please don't feel obligated to do so. I appreciate every one of you, and I will continue to share valuable content with you regardless of whether you choose to support me in this way. Thank you for being part of the Code Beauty community! ❤️😇
Contents:
00:00 - What are friend functions
00:52 - Best extension for Visual Studio C++
02:10 - Let's create a problem
07:19 - Solving the problem with friend functions
10:37 - Multiple friend functions
11:28 - Friend classes
14:48 - Important tips about friend functions and classes
16:22 - Homework (operator overloading and friend functions)
Videos mentioned in this tutorial that you should watch:
Must know Visual Assist features - • My top 5 Visual Assist...
Encapsulation - • C++ OOP - What is enca...
Inheritance - • C++ OOP - What is inhe...
Operator overloading - • C++ Operator Overloadi...
Add me on:
Instagram 📸 - / truecodebeauty
Twitter 🐦- / truecodebeauty - วิทยาศาสตร์และเทคโนโลยี
📚 Learn how to solve problems and build projects with these Free E-Books ⬇️
C++ Lambdas e-book - free download here: bit.ly/freeCppE-Book
Entire Object-Pascal step-by-step guide - free download here: bit.ly/FreeObjectPascalEbook
🚀📈💻🔥 My Practical Programming Course: www.codebeautyacademy.com/
Experience the power of practical learning, gain career-ready skills, and start building real applications!
This is a step-by-step course designed to take you from beginner to expert in no time!
💰 Here is a coupon to save 10% on your first payment (CODEBEAUTY_YT10).
Use it quickly, because it will be available for a limited time.
Homework solution:
#include
#include
#include
using namespace std;
class TH-camChannel {
string Name;
int SubscribersCount;
public:
TH-camChannel(string name, int subscribersCount) {
Name = name;
SubscribersCount = subscribersCount;
}
bool operator==(const TH-camChannel& channel) const {
return this->Name == channel.Name;
}
friend ostream& operator
I figured you'd have to use public access for much of the classes - otherwise I'd be making int main() a friend along with making the classes friends of each other, and even then I'd get an error with == operator being private due to a context of some sort of access inability in a template in a file called 'list.tcc'.
I'm guessing my approach of not using public access at all would have been impossible?
You are so amazing with this stuff, Saldina. I just completed my C++ for Engineers and Scientists class and nailed a 95.6% for the class. I owe at least part of that to your great videos. And now that I know classes, I can understand this topic which he never did in my class. Thank you!!!! 😀
I have watched three different videos of friend functions on TH-cam and you are absolutely the best. You explains in details why we need to use friend functions and when to use them. I subscribed you and will keep watch your videos! You're very talented teaching c++.
Can you please post a full detailed long video on below two topics:
Data structures using C++
STL using C++
I come to your channel everyday to learn something new. Thanks!
I'm happy to hear that, cheers 🥰🥰
Imas svoj stil, objasnjavas jasno i detaljno. Puno truda ulazes u svaki video i to se vidi. Hvala jos jednom.
:)
Finally found the ultimate teacher...
So concrete and so useful. You're the best...
Awesome stuff, thank you for helping me brush up on my OOP skills.
One of the most clear explaination of Friend function on the internet.
Thanks a lot for those awesome videos!! I used to learn C++ and it was too hard for me so I gave up. After watching your tutorials, your excellent and outstanding work has given me confidence in learning C++ and interest in programming again. You are an excellent teacher and a role model for me on the way to learning code. Now I think the code is really cool, I also hope to become a programmer one day. Thank you again for everything.
at 4:16 she used a brazilian meme... I like this !!!
Great Job! I learnt alot today, and I am grateful.🙂
Hey, waiting for the premiere ,lots of appreciation and thanks for teaching us.
Thank You! You explained it way better than how my book tried to! 👍👍👍
When you finish making all the beginner videos, you should make some videos about Qt 6. It's more advanced and _way_ more capable, and it's relatively easy to use.
Personally I love programming with Qt, since it just lets you do everything your way and it has a very deep connection with C++ (they "invented" a lot of the things in stdlib today like smart pointers etc...). I particularly find the concept of signals and slots amazing for multi-threaded programs. While it is mostly used to make GUI apps, you can also just make CLI programs that work really well.
If you don't know anything about qt, then make it your new years resolution to learn it. I guarantee you won't regret it.
Sretna nova godina!
I'm in love with this channel, and even if I'm not fluent in english I can understand you pretty clearly.
she cleared the concept very clearly, good work
Hey Saldina, your lessons are greatt 😁. And one thing, I guess it's called perimeter, circumference is perimeter of circle...
I finally understand them...thanks!
mam its my first time to watch your video .
your explanation is great, thank you for this type of useful videos
love from INDIA
Excellent explanation, ty so much!
Wow, I love how you can make a topic seem so simple and easy to understand!!! Love it!
🥰🥰
You are the best teacher ever. Thanks for reminding me how beautiful programming is. *_*
I ready do admire your teaching always
You’re quite amazing 😻 .
Really very instructive lecture !
Thank you
Another way, to have firend function,
#include
using namespace std;
class Base;
class BaseFriend {
public:
void printResult(Base& b);
};
class Base {
private:
float a;
float power = 0;
public:
void setA(float l) {
a = l;
power = a * a;
}
friend void BaseFriend::printResult(Base&);
};
void BaseFriend::printResult(Base& b) {
cout
Thank you so much for the videos. They are very helpful. The way you are explaining from basic level followed by intermediate level is very helpful. Also, please make the videos on advanced concepts and incorporating security measures (like buffer overflow) in C++ code. Also, kindly post videos very frequently.
incredible work!
You used a Brazilian meme hahaha. I'm from Brazil. Excellent content, thank you.
thank you, very helpful!
your lessons are great
great video , love from South Africa
excellent video, the humour was also good.
awesome! thanks for share!
❤ Really Appreciate the efforts... Explained a lot of better than teaching in my university.
Thanks alot for these kinda outstanding videos, it means alot to me (student)
Good job, thanks 👍
Wow so nice I completed Your OOP C++ video and I was about to learn friend function and your uploading a video so nice thank you Ma'am
Merry chrismas and happy new year.
Hello, thank you for this great job. Could you please do a tutorial about modern C++ (like C++11 and more). Thank you in advance ☺️
You need to use this pointer when setting the length in setA function . It is a good practice!
Hi, thank you for your outstanding videos. Very helpful and refreshing.
In C++, a function can be designated as a friend of a class, allowing it to access the private and protected members of that class. This friendship can be established in three ways: a stand-alone function, a member function of another class, and a separate class.
In your last example, you mentioned that a member function of another class cannot be declared as a friend. To clarify, it is indeed possible to declare a member function of another class as a friend. What was likely meant is that a member function of a class cannot be declared as a friend of the same class it belongs to.
In the context of friend functions, the typical scenario is to declare a stand-alone function or a member function of another class as a friend of a class, enabling it to access the private and protected members of that class. If you need to provide friend access specifically for a member function of another class, you can achieve this by declaring the entire class as a friend, not just the individual member function.
Would you please clarify?, thank you.
thanks so much❤
I choose to stay not only because you're amusing (haha) also because you explain the concepts very well, step by step and logically.
Saldina how about a code review series? We would love to send you our C++ projects 🙂 and would love your reaction on it.
you are just awesome😇 I love the way you teach😄👌
excelent . thanks . i download all your videos. thanks
Amazing ve beneficial videos, thanks ...
great content!
Hello from Philippines!
I love your contant and your stille in explain
Thankyou saldina.
Hi Saldina, Can you please make a video on using friend classes with a forward declaration for the Google test without altering the source code?
Thank you
THANKS!!!
Could you please make a video about when we should use "const", and when should we pass by const reference or by value.. Thank you!
u are a legend istg
Hey!
Is it a good idea to pass a parameter to the friend function by the constant reference?
you said creating getters is not a good solution because, everyone would be able to excess the class variables using getters, but the same thing is true for a friend function also, everyone can still access them now using friend function.
You’re amazing 🤩🤩🤩🤩🤩
best teacher😻🙂
thank you for updating to dark mode
what keyboard you are using, sounds fantastic
Nice work
thanks
Instead of circumference it's called perimeter! Great videos thanks 👍
thank u very much princess
really nice
you are the best
we have not called PrintResults function yet, and walso we have to pass the et object as the parameter... God bless you!
THANKS
You're welcome 🥰
Hi Saldina first of all, your videos are great and well explained, question, what is the differences between friends class and Inheritance what are the benefits of using friends over Inheritance?
I am studying c++ for months and i couldnt understand anything and i was afraid of my midterm exam but i feel like i am starting to understand so thank you so much (ps: your diction is very good so i can understand easily even though i am not native in English and also you speak sincerely so I don't start daydreaming in class and I listen carefully :) . Thanks again)
Please view Bro Code videos too. It's very detail course with real examples.
The reason the PrintResults function won't work is because you made it a member of the Homework class. So to access it you would have to use to dot operator after making an object of the homework class.
Mam, I want to develop an application for laptop functionality testing. I am new to c++, which tool I can use
I actually did stay because you are extremely amusing 😂
What's theme you use
Would it be possible to post .txt with your TH-cam videos, it would be easier to follow along?
What is the advantage of friend function over friend classes ???
Can we access a friend function, friend member function and friend class in a same program?
Hi, Saldina! good morning according to Afghanistan Time Zone. thanks a lot from this lecture also i was a little bit worry about you because you wasn't present on your social media.so I wish from GOD to help you what something wrong happened with you to solve As soon As possible.
The results from a calculator and this program for the area is different. Quite similar, yet big gap. Why is that? How is float rounding?
Share it with your friends, but she told us to be careful to choose friends and friends don't inherit and friendship isn't mutual, so basically now I haven't friends to share it. 😔
Please, could you explain a data structure type that is called a graph or tree Thank you very much
Would you like me to link you some resources I've found helpful?
4:10 I watched that part like 5 times... so cute haha
3:00 perimeter not circumference
Great mam.
Where are you from
mam plzzzzzzzzzzzz 🙏🏽🙏🏽🙏🏽🙏🏽🙏🏽🙏🏽🙏🏽 make video on aggregation and composition in C++
now printresult is not a global function
that's why it give error
04:15 Fun fact, this meme isn't Julia Roberts
❤️❤️❤️
👏👏👏👏👏
Haha, 04:16 Brazilian meme --> Renata Sorrah brazilian actress!
Thou shall not fall in love with your teacher 😭😭😭😭
something similar ....... coincidence do happen wow.......
disgusting
Victor are you saying you're gay?
Simp init
Nah u down bad
damn, I had a question about this topic yesterday and I didn't know the answer :(
4:05 :D It happens...
// friend functions
// #include
// using namespace std;
// class Triangle{
// private:
// int side_length, circum;
// public:
// void set_side(int a){
// side_length=a;
// circum=side_length*3;
// }
// friend void PrintResults(Triangle); //no need to specify parameter name....parameter type is enough
// };
// void PrintResults(Triangle obj){
// cout
Like #700! Great video 👌
9:40 - You forgot to call the function :D
IF YOU COULD PLEASE WORK ON ML AND AI WITH C++