📚 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. #include #include using namespace std; bool ascendingCompare(int a, int b) { return a < b; } bool descendingCompare(int a, int b) { return a > b; } void sortAscending(vector& numbersVector) { for (int startIndex = 0; startIndex < numbersVector.size(); startIndex++) { int bestIndex = startIndex; for (int currentIndex = startIndex + 1; currentIndex < numbersVector.size(); currentIndex++) { // We are doing comparison here if (ascendingCompare(numbersVector[currentIndex], numbersVector[bestIndex])) bestIndex = currentIndex; } swap(numbersVector[startIndex], numbersVector[bestIndex]); } } void sortDescending(vector& numbersVector) { for (int startIndex = 0; startIndex < numbersVector.size(); startIndex++) { int bestIndex = startIndex; for (int currentIndex = startIndex + 1; currentIndex < numbersVector.size(); currentIndex++) { // We are doing comparison here if (descendingCompare(numbersVector[currentIndex], numbersVector[bestIndex])) bestIndex = currentIndex; } swap(numbersVector[startIndex], numbersVector[bestIndex]); } } void customSort(vector& numbersVector, bool(*compareFunctionPtr)(int, int)) { for (int startIndex = 0; startIndex < numbersVector.size(); startIndex++) { int bestIndex = startIndex; for (int currentIndex = startIndex + 1; currentIndex < numbersVector.size(); currentIndex++) { // We are doing comparison here if (compareFunctionPtr(numbersVector[currentIndex], numbersVector[bestIndex])) bestIndex = currentIndex; } swap(numbersVector[startIndex], numbersVector[bestIndex]); } } void printNumbers(vector& numbersVector) { for (int i = 0; i < numbersVector.size(); ++i) cout
Due to the cumbersomeness of the types of these function pointers, they are good candidates for being typedef'ed: typedef bool (*SORT_FUNC)(int, int); void customSort(vector& numbersVector, SORT_FUNC compareFunctionPtr) { .... } SORT_FUNC funcPtr = descendingCompare; // Here in C++11 one could use that "auto" keyword to not have to write the actual type of 'funcPtr'.
Saldina, I said it in the chat and I will say it here: your videos are well worth watching in my opinion as you are concise, thorough, and pleasant to listen to. Please keep up the excellent work!!
Great video, but some aprovements. First a typedef helps a lot with the strange syntax. For example: typedef bool (*Compare_T)(int,int); Compare_T myFuncPtr; Sort( vector& Numbers, Compare_T OnCompare ); Second why don't you pass your compare function directly? Sort( myNumbers, AscendingCompare );
I'm self-learning C++ and your videos are really helpful. This is a very clear explanation about function pointers. Thank you so much for your hard work =)
bool compare(int a, int b){ return a < b;} sort(arr.begin(), arr.end(), compare); I was always wondering how this function works and today I have learned it from you. Thank you for your all videos
This video is such a good one. I spent 2 hours trying to do the function as a parameter until I think of this video and solved my issue in 4 minutes. You’re awesome Saldina ❤
Callback functions have always been a problem for me as I learn them and immediately forget them. But your explanation is very straightforward and I finally learnt what each part of the syntax is doing. Thank you very much. Keep doing these great videos.
the countless embedded code I've read through and copied and pasted that refused to work because of missing functions that pointers were looking for...I never understood the problem until now...Thank you for the detailed video and the channel, I'm slowly working through all your tutorials!....Beyond that..uff that accent
excellent video, little by little I'm starting to love this girl, because of how smart she is and the dedication that she puts into each video. Thank you for taking the time to publish this kind of videos. much that helps many of us to better understand ......
Function pointers are awesome. That's programming art. Every time, I think I know everything but luckily with you and your channel, there is always something more.
Thank you for all the videos, they already taught and helped me a lot🥰 and you are kind of someone I look up to soo, just thank you and have a nice day
Making these videos is a lot of hard work but comments like this bring me a lot of joy! Thank you so much and I wish you happy learning and hope you'll have a great day! 🥰🥰🤗
Great video! Function pointers make sense and can be usefull but I really never heard of function pointers until now, even though I studied computer science(about 18 years ago)... 😁 Thanks for teaching me new things about programming.👍
What did I learn? Two things. 1. The code builds and runs, but it generates about a dozen warnings so I had to track down the problem to get rid of them, I prefer code that doesn't generate warnings. 2. If you want to run both sorts at the same time, you must use two different pointers, that was an easy fix. Problem 1 was harder to track down but I figured it out. It seems that the .size function returns unsigned values, while the loop variables are signed and the < causes complaints. The solution I came up with was to type cast the loop variables in the comparison part of the for loops to (unsigned), this made the warnings go away and made me happy.
unbelievable again, learnt so much from your this example, initially I feel lost trying to catch up with all the codes nest, now with this more complicated one, I get to see how it all flows. Never miss a lesson to learn from her, very well put together.
i already know about function pointer but I got so much clarity in this video that I was missed. You are great...in simple Function pointers are used instead of switch case (i.e) to reduce the code
I'm a beginner in C++ and I think I wouldn't get function pointers in my first try if I was on my own.. I first heard about function pointers in this video (the last video in your pointers playlist) and I learned a lot, thank you so much P. S. Your videos are great overall, not just this vid, so I subbed
FWIW, function pointers have very practical use in embedded systems e.g., for dynamic interrupt callbacks, and as performant alternatives to lengthy case statements in state machines.
Excellent video. I think it's simpler and pratical to call the compare function directly in customSort. Like this: int main(){ vector numbersVector = {4, 2, 1, 3, 6 ,5}; customSort(numbersVector, descendingCompare); printNumbers(numbersVector); system("pause>0"); }
Made perfect sense to me. Thank you for putting this video together. The concept is complex, but you made it very easy to understand. I am now subscribed to your channel!
Great video, easy to understand. I understood what the code that I thought looked complex in your video meant and I surprised myself. All thanks to your explanation
I use function pointers when i write list (sorted instert function or sorting function) or a program for numerical integration (fe with rectangles, trapezoids, or Simpson)
Great with simple explanations, I think the use of std::function may also have been commented. I have used that especially inside classes instead of pointers to member functions.
Is there a special reason why - in Main() - the sort order function is passed to a functionpointer, and then the functionpointer is passed as a parameter to another functionpointer? You might as well pass the sort order method straight into the second sorting algorithm parameter. Why the extra indirection?
Can you please make a video about short-cuts in Visual Studio? I see that you often use short cuts, for example to multi-line comment. Short cuts can save us a lot of time, but many people don't know how to use them. Thanks in advance!
Hello, I hard a really hard time trying to understand direct and copy initialization. I couldn't tell the difference between: int a = 4; int a(4); When the compiler reaches int a = 4;, does the compiler first declare the variable a then the literal gets copied to a? The most confusing part is that there are braces as well. int a{4}; I couldn't tell if I should use with brackets or braces in this case. I would be highly appreciated if there will be a video dedicated to this soon. Your layman's terms explanations are spot on.
In your print function would you want to use a const reference to ensure nothing is changed? I could be wrong but wanted to check. GREAT video very helpful for function pointers and quite efficient.
It is a good idea. If the job of the function is just to write out elements it shouldn't change them, and to make sure that they'll not be changed we can use const 🤗🤗
I'm guessing that without the parentheses, we'd output to the console the address location (from RAM) of the function. 2:55 Oh! I was right! :) That's pretty cool. This was a very good and practical use of function pointers. I was experimenting with them, but hadn't imagined that this could be done with them! :)
Thank for your sharing, that very helpful. Could you please make a season sharing the callback function ? Why callback functions should be static ? Thank you in advance !
@@CodeBeauty It's very hard for a learner to find a tutor like you if RUclips wasn't there at present. Please do more videos on C++ so we could all learn many more concepts which were not taught at University level. I learnt many things from you than my university classes. Thank you Saldina (Beauty with brain 😀)
Ok now I'm able to build a while loop with a function pointer call inside. All fired methods have to take care to change the address of the function ptr to that method who have to be called next. In the case I would like to pass some variables I will use a void* - that sounds great!
With interfaces every derived class needs to have its own implementation, and here we use the same implementation for both tasks. Function pointers are also very useful when you want to invoke a parent class method from the child class 🤗🤗
Thank you for your explanation. I am learning a bit of C++ and have a question, if that's ok. I have come across passing functions as arguments as I needed to do it. In particular, I have a class and a member function is "attached" via another member function. So I declare the function pointer in the class and pass the desired function from the main program to the class via the attacher function which receives the adequate function in its arguments. Buuut, for some reason I have been able to do it by defining the attacher function and its arguments is not a pointer, like void attacher(double funfun(int v)){member = funfun;} Does this mean that the attacher is passing funfun by value? Like, making a copy of the function?
You have a good thing going on keep up the good work. I think it's possible to do, but would be nice to see a code that first ask for mathematical equation and then solves it with user given numbers also. But I think this kinds of programs have been made already like MathCad for example and others, but I think it could be a good challenge to do.
2 Questions: #1: Why not put an additional input in customSort like "bool ascending" and use if (ascending) {do ascending stuff...} else {do descending stuff...}? Using your customSort would need an if-statement to assign the function-pointer anyway... #2: I'd like to parse a string containing some formular (like "exp(x) * x^2 + sin(x)" or something like that). Feels like function pointers might be the way to go here (although I wouldn't know a nice and clean way to do this). Any hints on how to do that?
Hello , i have maybe a dumb question but at line 37 is it possible (and good) to directly invoke either ascendingCompare or descendingCompare inside your customSort without storing it into your pointer at line 36 ? Would it be beneficial ?
Well Saldina, can you make a video on const char* which is used as a string in c/c++. It doen't make much sense to me, so if you can, then please make a video on that. Thanks! Love your videos😊
@@CodeBeauty maybe the basics of setting up a GUI in Windows? Like what the basic structure is for creating a window class? Or if that's more on the advanced side, perhaps showing how to customize a Visual Studio C++ windows starter application?
📚 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.
#include
#include
using namespace std;
bool ascendingCompare(int a, int b) {
return a < b;
}
bool descendingCompare(int a, int b) {
return a > b;
}
void sortAscending(vector& numbersVector)
{
for (int startIndex = 0; startIndex < numbersVector.size(); startIndex++)
{
int bestIndex = startIndex;
for (int currentIndex = startIndex + 1; currentIndex < numbersVector.size(); currentIndex++)
{
// We are doing comparison here
if (ascendingCompare(numbersVector[currentIndex], numbersVector[bestIndex]))
bestIndex = currentIndex;
}
swap(numbersVector[startIndex], numbersVector[bestIndex]);
}
}
void sortDescending(vector& numbersVector)
{
for (int startIndex = 0; startIndex < numbersVector.size(); startIndex++)
{
int bestIndex = startIndex;
for (int currentIndex = startIndex + 1; currentIndex < numbersVector.size(); currentIndex++)
{
// We are doing comparison here
if (descendingCompare(numbersVector[currentIndex], numbersVector[bestIndex]))
bestIndex = currentIndex;
}
swap(numbersVector[startIndex], numbersVector[bestIndex]);
}
}
void customSort(vector& numbersVector, bool(*compareFunctionPtr)(int, int))
{
for (int startIndex = 0; startIndex < numbersVector.size(); startIndex++)
{
int bestIndex = startIndex;
for (int currentIndex = startIndex + 1; currentIndex < numbersVector.size(); currentIndex++)
{
// We are doing comparison here
if (compareFunctionPtr(numbersVector[currentIndex], numbersVector[bestIndex]))
bestIndex = currentIndex;
}
swap(numbersVector[startIndex], numbersVector[bestIndex]);
}
}
void printNumbers(vector& numbersVector) {
for (int i = 0; i < numbersVector.size(); ++i)
cout
Due to the cumbersomeness of the types of these function pointers, they are good candidates for being typedef'ed:
typedef bool (*SORT_FUNC)(int, int);
void customSort(vector& numbersVector, SORT_FUNC compareFunctionPtr)
{ .... }
SORT_FUNC funcPtr = descendingCompare; // Here in C++11 one could use that "auto" keyword to not have to write the actual type of 'funcPtr'.
when I used "cout
It is a bubble sort
@@arod3295 This is my behaviour too, but I'm using the Terminal and not VSCode.
cout
Saldina, I said it in the chat and I will say it here: your videos are well worth watching in my opinion as you are concise, thorough, and pleasant to listen to. Please keep up the excellent work!!
Thank you so much, I will! 🙏💙💙
Saldina! We love you all around the World! Cheers from Argentina!
Cheers from Brazil!
I love you too! 💙💚
🇦🇷🇧🇷
Cheers from El Salvadorl!
Cheers from India 🇮🇳
Cheers from Peru
Great video, but some aprovements.
First a typedef helps a lot with the strange syntax. For example:
typedef bool (*Compare_T)(int,int);
Compare_T myFuncPtr;
Sort( vector& Numbers, Compare_T OnCompare );
Second why don't you pass your compare function directly?
Sort( myNumbers, AscendingCompare );
I'm self-learning C++ and your videos are really helpful. This is a very clear explanation about function pointers. Thank you so much for your hard work =)
bool compare(int a, int b){ return a < b;}
sort(arr.begin(), arr.end(), compare);
I was always wondering how this function works and today I have learned it from you. Thank you for your all videos
This video is such a good one. I spent 2 hours trying to do the function as a parameter until I think of this video and solved my issue in 4 minutes. You’re awesome Saldina ❤
❤️❤️💪
Callback functions have always been a problem for me as I learn them and immediately forget them. But your explanation is very straightforward and I finally learnt what each part of the syntax is doing. Thank you very much. Keep doing these great videos.
the countless embedded code I've read through and copied and pasted that refused to work because of missing functions that pointers were looking for...I never understood the problem until now...Thank you for the detailed video and the channel, I'm slowly working through all your tutorials!....Beyond that..uff that accent
excellent video, little by little I'm starting to love this girl, because of how smart she is and the dedication that she puts into each video. Thank you for taking the time to publish this kind of videos. much that helps many of us to better understand ......
Thank you for supporting me! It requires a lot of hard work to prepare, film, and edit the videos, but it also brings me great joy! 💗💗💗
I used to hate using Pointers but I start to love it now
This vid pushes my peak interest further
I'm a C++ beginner and this was well done. This was very easy to follow and I will be tuning in for more videos.
Function pointers are awesome. That's programming art. Every time, I think I know everything but luckily with you and your channel, there is always something more.
It's nice to see you again Mam🙂
🥰🥰🤗
Thank you for all the videos, they already taught and helped me a lot🥰 and you are kind of someone I look up to soo, just thank you and have a nice day
Making these videos is a lot of hard work but comments like this bring me a lot of joy! Thank you so much and I wish you happy learning and hope you'll have a great day! 🥰🥰🤗
Great video! Function pointers make sense and can be usefull but I really never heard of function pointers until now, even though I studied computer science(about 18 years ago)... 😁
Thanks for teaching me new things about programming.👍
Yep, they are very useful. I use them very often when I want to invoke a method of the parent class from the child class 🤗🤗😃
Thanks Saldina for explaining the function pointer concept with proper example. Please keep making such videos.
What did I learn? Two things. 1. The code builds and runs, but it generates about a dozen warnings so I had to track down the problem to get rid of them, I prefer code that doesn't generate warnings. 2. If you want to run both sorts at the same time, you must use two different pointers, that was an easy fix. Problem 1 was harder to track down but I figured it out. It seems that the .size function returns unsigned values, while the loop variables are signed and the < causes complaints. The solution I came up with was to type cast the loop variables in the comparison part of the for loops to (unsigned), this made the warnings go away and made me happy.
Thank you. My professor assigned a function pointer assignment, but he didn't have time to really explain it. This really helped :-)
I really need this, thanks, it's very helpful
🙏💙
@@CodeBeauty 🙏 love from india
@@herlim6927 💚🧡🇮🇳
unbelievable again, learnt so much from your this example, initially I feel lost trying to catch up with all the codes nest, now with this more complicated one, I get to see how it all flows. Never miss a lesson to learn from her, very well put together.
Happy to hear that ☺️🤗
i already know about function pointer but I got so much clarity in this video that I was missed. You are great...in simple Function pointers are used instead of switch case (i.e) to reduce the code
I'm a beginner in C++ and I think I wouldn't get function pointers in my first try if I was on my own.. I first heard about function pointers in this video (the last video in your pointers playlist) and I learned a lot, thank you so much
P. S. Your videos are great overall, not just this vid, so I subbed
Saldina. Many thanks for ur courses. One thumb up is not enough.
Thank you so much! 🙏💙💙
Hi, I am from Taiwan. Thank you very much! Your tutorial is always very clear! I love the style you teach!
I have found your C++ videos very down to earth and really easy to understand. Thank you!
Been 20 years ago when I wrote my last c/c++ program at school. But this serie makes me want to code some old school tasks
Thankyou somuch..i really need this
You will understand why and when to use function pointers after watching this! 🤗🤗🥰
@@CodeBeauty thankyou ❤️🥰
Omg you are the best programming 'teacher' on youtube
Thank you 🥰🥰
Fun fact, my programming teacher's name at University was Denis 😃😃
i can not believe how easy you made it , thanks a lot ❤
You're amazing, thanks for keeping the spirit of C++ alive ❤️❤️❤️
❤❤❤!
FWIW, function pointers have very practical use in embedded systems e.g., for dynamic interrupt callbacks, and as performant alternatives to lengthy case statements in state machines.
After these videos, i'm feeling myself like senior C++ Developer:) Thanks!
I'm so happy if my videos can motivate you and make you like programming! 🥰🥰🥰
You are just starting
your videos are simple and concise and make us love programming, thank you for such awesome videos.
thanks for the 10 hour course and everything
🙏💙
Excellent video. I think it's simpler and pratical to call the compare function directly in customSort. Like this:
int main(){
vector numbersVector = {4, 2, 1, 3, 6 ,5};
customSort(numbersVector, descendingCompare);
printNumbers(numbersVector);
system("pause>0");
}
Awesome explanation
🙏💙
Thanks a lot ...❤️❤️❤️...
❤️❤️❤️
ur voice is very sweet, thanks saldina for this awesome video🙏
🙏💙
Made perfect sense to me. Thank you for putting this video together. The concept is complex, but you made it very easy to understand. I am now subscribed to your channel!
Very well explained. I understood very well.
🤞🤗🥰
why do we need to vector& numbersVector, & here? any previous video cover this?
Best part is real life usage examples so really nice video
Love your videos! Your explanations are excellent!
🤗🥰🥰
Exactly what I needed. Thank you very much Saldina!
🥰🥰🤗
One of the best instructor Ms Saldina.....
I am ur subscriber from Pakistan
I love your videos! Please continue to make them. It’s a good supplement to class.
🙏💙
Great videos, hope you complete 100k subscribers soon❣️
I hope so ☺️ Thank you! 🙏💙
Your accent is really sweet ❤️ and Saldina you rock 😎
🙏💙💙
Great video, easy to understand. I understood what the code that I thought looked complex in your video meant and I surprised myself. All thanks to your explanation
Hey thanks for the great explanation and where to use it, i kinda knew the syntax of func ptr but wasn't sure where to use them, this helped a lot!
Thank You, very clear explanation, so I could recap qsort() function
🤗🥰🥰
my 2 Year c++ in University was a lie. I love your Videos. Can you please make video about Iterations please!
So easy to understand. Thank you so much!!!
I use function pointers when i write list (sorted instert function or sorting function)
or a program for numerical integration (fe with rectangles, trapezoids, or Simpson)
Idk you have took any diciton course but you have a very smooth explaination.👍 Thank you very much.
Thank youu!! your explanation is really clear throughout
Yep, definitely very helpful, thank you very much, Saldina!
Oh yea, I have to agree with Denerius Targerian, your videos are very informative and easy to follow.
Great with simple explanations, I think the use of std::function may also have been commented. I have used that especially inside classes instead of pointers to member functions.
Amazing example. Thank you
Is there a special reason why - in Main() - the sort order function is passed to a functionpointer, and then the functionpointer is passed as a parameter to another functionpointer?
You might as well pass the sort order method straight into the second sorting algorithm parameter. Why the extra indirection?
Can you please make a video about short-cuts in Visual Studio? I see that you often use short cuts, for example to multi-line comment. Short cuts can save us a lot of time, but many people don't know how to use them. Thanks in advance!
That is great idea. I'll definitely make that video in the future 😃🤗🤗
Your videos are really nice and enchanting
Omg thx i really needed this for my memory Editor gui :D
🤗🤗🥰
Hello, I hard a really hard time trying to understand direct and copy initialization.
I couldn't tell the difference between:
int a = 4;
int a(4);
When the compiler reaches int a = 4;, does the compiler first declare the variable a then the literal gets copied to a?
The most confusing part is that there are braces as well.
int a{4};
I couldn't tell if I should use with brackets or braces in this case.
I would be highly appreciated if there will be a video dedicated to this soon. Your layman's terms explanations are spot on.
Another banger Sald, keep it comin!
In your print function would you want to use a const reference to ensure nothing is changed? I could be wrong but wanted to check. GREAT video very helpful for function pointers and quite efficient.
It is a good idea. If the job of the function is just to write out elements it shouldn't change them, and to make sure that they'll not be changed we can use const 🤗🤗
@@CodeBeauty Thank you Saldina!
@@CodeBeauty We can also use a range-based for loop. ;)
Thank you for this great video.
🤗🥰🥰
Thank You For Your Amazing Explanation :)!
I like to use the "function" expression (#include) instead. Even better, lambdas.
Very useful. Thanks!
🤗🤗🥰
I'm guessing that without the parentheses, we'd output to the console the address location (from RAM) of the function. 2:55
Oh! I was right! :) That's pretty cool.
This was a very good and practical use of function pointers. I was experimenting with them, but hadn't imagined that this could be done with them! :)
Very nice
Thanks, but how did you find this video? 🧐😲
It is still unlisted 😁😅
@@CodeBeauty Really? I've finished it :3
understood! thanks for the video!
amazing explanation
Thank you so so so much!!!
This one was good training+usecase thanks
You're welcome 🥰
Thank for your sharing, that very helpful.
Could you please make a season sharing the callback function ?
Why callback functions should be static ?
Thank you in advance !
Can you make videos where you explore famous c++ libraries and the most important options that they offer?
Love u saldina❤❤, u r the best.
from Ethiopia
Hi Saldina.
Please do a video on friend function, inline, and Virtual function in detail
This video should help you understand virtual and pure virtual functions ruclips.net/video/T8f4ajtFU9g/видео.html
🤗🤗
@@CodeBeautyPlease on friend function too .... 😊😊
@@CodeBeauty It's very hard for a learner to find a tutor like you if RUclips wasn't there at present. Please do more videos on C++ so we could all learn many more concepts which were not taught at University level. I learnt many things from you than my university classes.
Thank you Saldina (Beauty with brain 😀)
Thanks!!!
❤️❤️❤️
Ok now I'm able to build a while loop with a function pointer call inside. All fired methods have to take care to change the address of the function ptr to that method who have to be called next. In the case I would like to pass some variables I will use a void* - that sounds great!
Thanks!
Thanks 😌.
Cool video, but usually in OOP you would use interfaces to abstract the compare mechanism. You won't usually resort to passing function pointers.
With interfaces every derived class needs to have its own implementation, and here we use the same implementation for both tasks.
Function pointers are also very useful when you want to invoke a parent class method from the child class 🤗🤗
@@CodeBeauty right! As someone who leans more to C I can totally relate to fine balance to not "over-engineer"! 😅
when I used "cout
did you find out why? XD it happened the same to me now
How could your "cout
Hello CodeBeauty, I'm just wondering why don't you instead use std::sort to sort the vectors?
keep the cool work that you doing miss saldina
Thank you for your explanation. I am learning a bit of C++ and have a question, if that's ok.
I have come across passing functions as arguments as I needed to do it. In particular, I have a class and a member function is "attached" via another member function. So I declare the function pointer in the class and pass the desired function from the main program to the class via the attacher function which receives the adequate function in its arguments. Buuut, for some reason I have been able to do it by defining the attacher function and its arguments is not a pointer, like void attacher(double funfun(int v)){member = funfun;}
Does this mean that the attacher is passing funfun by value? Like, making a copy of the function?
You have a good thing going on keep up the good work. I think it's possible to do, but would be nice to see a code that first ask for mathematical equation and then solves it with user given numbers also. But I think this kinds of programs have been made already like MathCad for example and others, but I think it could be a good challenge to do.
2 Questions:
#1: Why not put an additional input in customSort like "bool ascending" and use if (ascending) {do ascending stuff...} else {do descending stuff...}? Using your customSort would need an if-statement to assign the function-pointer anyway...
#2: I'd like to parse a string containing some formular (like "exp(x) * x^2 + sin(x)" or something like that). Feels like function pointers might be the way to go here (although I wouldn't know a nice and clean way to do this). Any hints on how to do that?
Hello , i have maybe a dumb question but at line 37 is it possible (and good) to directly invoke either ascendingCompare or descendingCompare inside your customSort without storing it into your pointer at line 36 ? Would it be beneficial ?
Well Saldina, can you make a video on const char* which is used as a string in c/c++. It doen't make much sense to me, so if you can, then please make a video on that. Thanks! Love your videos😊
Great video!
So CPP can be completely Object Oriented and Functional language. As I know we can create functors from CPP classes
Any chance you might consider doing some intermediate programming tutorials? Like one step up from beginner?
Can you suggest some topics that you'd like to see in the future 🤗🤗🥰
@@CodeBeauty maybe the basics of setting up a GUI in Windows? Like what the basic structure is for creating a window class? Or if that's more on the advanced side, perhaps showing how to customize a Visual Studio C++ windows starter application?
Спасибо ^_^
Пожалуйста 🤗🥰🥰