Assuming your domain and range are the real numbers.
If you only want continuous functions, the only solutions are $f(x)=g(x)=e^{ax}$ and $f(x)=0$ for the multiplicative case and $f(x)=h(x)=ax$ for the additive case.
For the additive case, first note that $f(x)=f(x+0)=h(x)+h(0)$, and that $f(x)=f(x+0+0)=h(x)+h(0)+h(0)$. So $h(0)=0$ and $f(x)=h(x)$.
Second, note that if $n\in\mathbb N$, $f(nx)=nf(x)$. This is true just by writing $nx = x + x + ... + x$.
Also note that $f(-x)=-f(x)$, since $f(x)+f(-x) = f(x+(-x))=f(0)=0$.
So, for any $n\in \mathbb Z$, $f(nx)=nf(x)$.
Now, let $q=\frac{m}{n}$ be any rational number, $m,n\in\mathbb Z$, $n\neq 0$.
Then $mf(x) = f(mx) = f(nqx)= n f(qx)$. Dividing both sides by $n$, we see that $f(qx)=qf(x)$ for any rational number $q$.
In particular, if we set $a=f(1)$, then for any rational $q$, $f(q)=f(q\times 1) = q f(1)= aq$.
If $f$ is continuous, then $f(x)=ax$ for all $x$.
If $f$ is not necessarily continuous, then all we know is that $f$ is something called a linear function from $\mathbb R$ to $\mathbb R$, where the real numbers are seen as a vector space over the field of rational numbers. There are tons of such functions, but the discontinuous ones are discontinuous everywhere.
For the multiplicative example, first note that $f$ has to be everywhere non-negative, because $f(x)=f(\frac{x}2)f(\frac{x}2)$.
If $f(z)=0$ anywhere, then $f(x)=f(z+(x-z))=f(z)f(x-z)=0$ for any $x$, so $f$ must be zero everywhere.
Otherwise, $f(x)$ is always positive, and therefore we can define $f_0(x)=\log f(x)$. This is an "additive" solution, so, if it is continuous, we know $f_0(x)=ax$ for some $a$, and hence $f(x)=e^{ax}$.
If we don't know it is continuous, then all we can say is that $f_0(x)$ is a linear function as defined above.
Addendum
Given that you are restricting yourself to $\mathbb R^+$, you can extend any such function on $\mathbb R^+$ to a function on all of $\mathbb R$ in the additive case easily enough by defining $f_1(x)=f(x)$ for $x>0$, $f_1(x)=-f(-x)$ for $x<0$ and $f_1(0)=0$. Then $f_1(x)$ is additive on the entire reals, so we can use my argument above.
The multiplicative case is slightly harder, first because we need to change our proof that if $f(z)=0$ for any $z$ then $f(x)=0$ for all $x$. Our proof, if written for $\mathbb R^+$, only works for $x>z$, but what we can show easily is that $f(\frac{z}n)=0$ for any natural $n$, and, for any $x>0$, there is an $n$ such that $\frac{z}n<x$. So again if $f$ is zero anywhere, it is zero everywhere.
Then we can extend any multiplicative $x$ to the entire reals either by setting it to $0$ or setting it to $\frac{1}{f(x)}$. for $x$ negative.