I've been learning c++ for about 6 or 7 months now, and I've been messing around with a few systems that I'll hopefully use in a game I'll make one day. I don't know anything about graphics yet, so most of my experiments have been more about managing classes. For my latest experiment, I want to set up the system that delivers different types of effects to an enemy from a bullet fired by the player. For instance, it could have a freeze property that slows the enemy down, or a shock property that does added damage to shields and so on. My initial instinct is to make a projectile class contains has a vector of effect classes as a member. The player too, will have a vector of effects as a member. When the player fires a bullet, the player object's vector is copied onto the projectile. When the projectile connects with an enemy, it runs through the list of effects and applies each.
My concern/question is: is that too much information for each projectile to contain, or is this a somewhat typical setup? If I have dozens or maybe even hundreds of projectiles, each with that much information associated, could that become a dangerous amount of processing to run for every frame?
Like I said, I'm pretty new to programming, so if this is way off I'd appreciate a pointer or two. But if this will work for the small scale that I'm at now I'll continue building the system just for practice. Basically I just don't want any bad habits to develop this early in my education.
Thanks in advance